0

问题如下(批评者赞赏):我正在编写一个 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);

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

4

2 回答 2

0

不需要使用原型方法。如用于编写 JQuery 插件的文档中所述,您返回插件对象的实例。假设您的插件对象是自定义的,则不需要使用原型方法。

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

$(window).resize(function(){
  //if not a local function, then you can use $this.update()
   update();
}
于 2013-04-16T07:15:23.107 回答
0

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

$(window).resize(function(){
 $('element_selector_here').data('my').update();
}
于 2013-05-02T22:32:19.880 回答