jquery插件方法调用内部回调来初始化

时间:2013-07-01 20:55:38

标签: jquery jquery-plugins jquery-callback

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

示例:

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?

谢谢! 附:抱歉我的英文不好

1 个答案:

答案 0 :(得分: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