В настоящее время я пишу свой первый плагин jQuery, и я изо всех сил пытаюсь найти подходящий способ структурировать код.Я прочитал документацию на веб-сайте jquery, а также исходный код других плагинов, но, похоже, не могу найти согласованный способ сделать это или тот, который решает проблему, с которой я столкнулся.добавляет некоторую обработку текста к элементу ввода текста для форматирования текста как даты.
Пример ниже связывает два события с элементом.У меня есть проблема, как я могу получить доступ к самому элементу из функции _processText.В примере я использую $ (this), но это дает мне объект, а не элемент, поэтому я не могу установить для него значение или вызвать событие.Единственный способ сделать это - передать элемент в функцию как параметр непосредственно в событии связывания, но я не думаю, что это выглядит правильно.
Любая помощь, полученная в значительной степени.
(function($) {
var methods = {
init : function( options ) {
return this.each(function() {
// Process the entered text and convert
// into a formatted date
$(this).bind('blur', function(event){
methods._processText($(this).val());
});
// Custom event to trigger when invalid text
// is entered
$(this).bind('invalid', function(event) {
alert("Invalid");
});
});
},
_processText: function(txt) {
// Sudo code
if (txt.isValid()) {
$(this).val(txt)
} else {
$(this).trigger("invalid");
}
}
};
// boilerplate
$.fn.datefield = function( method ) {
if ( methods[method] ) {
return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 ));
} else if ( typeof method === 'object' || ! method ) {
return methods.init.apply( this, arguments );
} else {
$.error( 'Method ' + method + ' does not exist on jQuery.DateField' );
}
};
})(jQuery);