1

请帮助我,如何在回调中调用方法?

例子:

var methods = {
     init : function( settings ) { 
     },
     destroy : function( ) {  },
     reposition : function( ) { },
     show : function( ) { },
     hide : function( ) { },
     myfunc : function() {}
  };

//
$.fn.myPlugin.defaults = {
        // CALLBACK
        onClickElement : function(element) {}
    };


$('#elementLi').myPlugin({
        onClickElement: function(element) { 
            // here call method myfunc
        }
});

如何在 onClickElement 中调用 myfunc?

谢谢你!PS对不起我的英语不好

4

1 回答 1

0

按照惯例,事件处理程序应设置this为与事件关联的元素。

您的插件还应该安排将原始代码传递event给已配置的任何函数onClickElement,尽管您没有在此处包含该代码。

把它们放在一起,你应该最终得到:

$('#elementLi').myPlugin({
    onClickElement: function(event) {   // NB: *not* element
        methods.myfunc.call(this, event);
    }
});

或者,如果您遵循上述建议,您甚至不需要额外的function块:

$('#elementLi').myPlugin({
    onClickElement: methods.myfunc
});

只要您的回调用于.call(element, func)调用onClickElement它就会正确设置this为元素而不是methods.

于 2013-07-01T21:00:40.480 回答