如何在使用构造函数模式和插件原型时在jquery中触发函数?

时间:2013-04-16 06:53:43

标签: javascript jquery jquery-plugins jquery-events

问题如下(评论家赞赏): 我正在编写一个jquery插件,如下面的示例代码所示:

;(function($, document, window, undefined) {
    $.fn.myPlugin = function(params) {
        return this.each(function() {
            $(this).data('my', new MyPlugin(params));
        }
    }

    function MyPlugin(params) {
        // do something
    }

    MyPlugin.prototype = {
        init: function() { ... },
        update: function() { ... }
    }

})(jQuery, document, window);

现在我希望在$(window).onresize上调用MyPlugin原型中的更新功能。 如果可能,请有人解释(解决方法也欢迎)。提前致谢

2 个答案:

答案 0 :(得分:0)

无需使用原型方法。正如authoring JQuery plugins的文档中所提到的,您将返回插件对象的实例。假设您的插件对象是自定义的,则不需要使用原型方法。

话虽如此,当您初始化插件时可以访问您的更新功能,您可以将其绑定到窗口调整大小事件(假设您希望插件在窗口调整大小时始终更新):

$(window).resize(function(){
  //if not a local function, then you can use $this.update()
   update();
}

答案 1 :(得分:0)

data jquery保存创建的对象,以便您可以使用它来调用这样的原型函数

$(window).resize(function(){
 $('element_selector_here').data('my').update();
}