Я пытаюсь создать простой плагин jQuery для аккордеона и не могу понять, почему это ключевое слово не работает так, как должно. Вот код плагина:Почему этот.find() не работает внутри моего плагина?
(function($){
$.fn.accrdn = function(userSettings) {
var defaults = {
toggle: true
};
var options = $.extend({}, defaults, userSettings);
var handle = this.find('.handle');//doesn't work!
if (options.toggle) {
handle.click(function(){
$(this).next('.panel').slideToggle();
});
} else {
handle.click(function(){
$(this).next('.panel').slideUp();
});
};
};
})(jQuery);
вы можете включать, как вы используете плагин? Пример разметки и кода вызова? Возможно [скрипка] (http://jsfiddle.net/). –
, пожалуйста, покажите разметку, сгенерированную плагином. Вызов 'this.find()' является совершенно законным, хотя корректный плагин будет использовать 'this.each()', чтобы применить его к каждому поставляемому элементу, или 'this.first() .find() ', чтобы гарантировать, что он применим только к первому совпадающему элементу. – Alnitak
"does'nt work" как именно? Является ли селектор пустым, как ни в каком элементе, или вызывает ошибку в консоли. Синтаксис кажется совершенно верным! – adeneo