Как и многие другие подобные вопросы, я пишу свой первый плагин jQuery.Он предназначен для выбора элемента select и замены параметров интерактивными элементами списка, которые будут использоваться в качестве образцов.У меня отлично работает основная функциональность, но мне нужно добавить возможность вызывать другой метод, который отключит определенные опции.Моя проблема заключается в том, что при этом мне нужно связать некоторые элементы click и развязать другие.
В настоящее время мое первоначальное связывание содержится в функции внутри моего метода init.Мне нужно иметь возможность вызывать эту функцию из другого метода «отключить».Итак, вот некоторый код:
(function($){
var methods = {
// Init method
init : function(options) {
// Set options
var
defaults = {
clickCallback: function(){} // Define empty function for click callback
}
, settings = $.extend({}, defaults, options)
// Function to bind options
function fnBindOptions(var1, var2, var3) {
// Stuff to bind elements
// Hit the click callback
settings.clickCallback.call(this);
}
return this.each(function() {
// Check that we're dealing with a select element
if(element.is('select')) {
// Loop through the select options and create list items for them
$('option', element).each(function() {
// Stuff to create list elements
// Bind click handler to the new list elements
fnBindOptions(var1, va2, var3);
});
}
});
// return
return this();
}
// Disable buttons method
, disable : function(options) {
// I need to access fnBindOptions from here
$(elementID).children('li').removeClass('disabled').each(function(){
fnBindOptions(var1, var2, var3);
});
}
};
Вот моя проблема: мне нужно вызывать функцию привязки для каждой опции перед ее отключением - но я не могу получить доступ к fnBindOptions из метода disable - и потому что fnBindOptions включает в себяобратный вызов из переменной 'settings', я также не могу переместить его за пределы метода 'init'.
Итак, есть ли у кого-нибудь какие-либо советы здесь?
Спасибо!