为什么this.find()在我的插件中不起作用?

时间:2013-04-03 15:01:07

标签: javascript jquery this

我正在尝试制作一个简单的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 );

1 个答案:

答案 0 :(得分:6)

既然OP提供了一个代码用法的示例,问题是手风琴div的选择器,它应该是:

$(document).ready(function() {
    $('.accordion').accrdn({toggle:true, slideSpeed:500});
}); 

注意:选择器缺少.以确定它是class选择器

Here is the fix