如何在jQuery插件回调中使用'this'?

Ron*_*den 4 javascript jquery this

目前我正在创建一个jQuery插件.

使用回调时我遇到了问题.

插件代码

$.fn.bondye = function (options) {
    var settings = $.extend({
        callback: function () {}
    }, options);

    return this.each(function () {
        $(this).addClass('test');
        settings.callback();
    });
};
Run Code Online (Sandbox Code Playgroud)

我想如何执行代码

$(".myDiv").bondye({
    callback: function () {
        $(this).removeClass("test");
    }
});
Run Code Online (Sandbox Code Playgroud)

jsFiddle示例:http://jsfiddle.net/HEJtm/1/

但我不能在回调中对div做任何事情.

我使用http://learn.jquery.com/plugins/advanced-plugin-concepts/来学习开发jQuery插件,但我找不到任何关于回调的信息.

Mat*_*ics 6

您需要为回调设置上下文.你可以使用call:

settings.callback.call(this);
Run Code Online (Sandbox Code Playgroud)

  • @Bondye:实际上他比我快了6秒:-)请你给这个答案勾选一个复选标记? (2认同)