我想制作一个简单的jQuery手风琴插件,但无法弄清楚为什么'this'关键字不能正常工作。这里的插件的代码:为什么this.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
“不工作”究竟如何?选择器是空的,因为没有找到元素,或者它在控制台中抛出错误。语法似乎完全有效! – adeneo