Quando chiamo questa funzione personalizzatajQuery .fn sta dicendo "non è una funzione"
$.fn.inputBoxHelper = function() {
var args = arguments[0] || {};
var matchingElem = $.grep(this, function (e) { return $(e).val() == $(e).attr('title'); });
$(matchingElem).addClass(args.className);
this.bind({
focus: function(){
if ($(this).val().trim() == $(this).attr('title')) { $(this).val(emptyString).removeClass('gray'); }
},
blur: function(){
if ($(this).val().trim() == emptyString) { $(this).val($(this).attr('title')).addClass('gray'); }
}
});
return this;
}
Ti piace questa
$('input:text').inputBoxHelper({ className: 'gray' });
mi dà l'errore quando lo chiamo io
$("input:text,input:checkbox").inputBoxHelper is not a function
file:///D:/repository/scripts/script_tests/test.js
Line 20
Anche quando cambio la funzione a solo
$.fn.inputBoxHelper = function() {return this;}
fa la stessa cosa. Sembra funzionare correttamente e funziona correttamente in quanto tutte le funzionalità funzionano sulle caselle di input, ma ottengono l'errore. Qualcuno ha qualche idea?
Sei sicuro di non aver chiamato il plug-in nel codice prima di averlo creato? – user113716
Stai anche facendo affidamento sul fatto che $ non viene dirottato da un'altra libreria. Quando si creano plug-in, è più sicuro usare jQuery.fn o (function ($) {$ .fn.etc}) (jQuery); http://docs.jquery.com/Plugins/Authoring –
Patrick: avevi ragione. Anche se la funzione sopra questa ha funzionato bene, per qualche ragione questo non ha funzionato fino a dopo. Grazie. – Micah