Javascript 为什么';这个.find()在我的插件中是否有效?

Javascript 为什么';这个.find()在我的插件中是否有效?,javascript,jquery,this,Javascript,Jquery,This,我正在尝试制作一个简单的jQuery手风琴插件,但不明白为什么“this”关键字不能正常工作。以下是插件的代码: (function( $ ){ $.fn.accrdn = function(userSettings) { var defaults = { toggle: true }; var options = $.extend({}, defaults, userSettings); var handle = this.find('.han

我正在尝试制作一个简单的jQuery手风琴插件,但不明白为什么“this”关键字不能正常工作。以下是插件的代码:

(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 );

既然OP已经提供了一个代码使用的示例,那么问题在于accordion div的选择器,它应该是:

$(document).ready(function() {
    $('.accordion').accrdn({toggle:true, slideSpeed:500});
}); 
注意:选择器缺少
以确定它是
选择器


您能介绍一下如何使用插件吗?示例标记和调用代码?可能是一个。请显示由插件生成的标记-调用
this.find()
是完全合法的,尽管一个行为良好的插件会使用
this.each()
将其应用于每个提供的元素,或者
this.first().find()
确保它只应用于第一个匹配的元素。“不起作用”到底如何?选择器是否为空(如在未找到元素中),或者是否在控制台中引发错误。语法似乎完全有效!这是提琴adeneo,控制台中没有抛出错误。它就是不起作用。FWIW,很多其他人也投入了很多精力,他们只是一开始无法正确回答,因为OP没有提供足够的信息。@Alnitak:是的,但我是那个坚持并投入额外精力的人。我不能对同意我的答案并认为它是正确的最初5个人负责,我认为公平地说,这5个人在看到我更新的答案后可能会保留投票权(假设他们还没有看到)