我有个插件,MyPlugin,对外暴露了一个init的接口实例化它 现在在页面加载的时候,页面上有两个元素都要实例化这个插件,所以调用了两次 但是发现init的参数每次被覆盖成了‘para2’
$(function(){ $.fn.MyPlugin('init','para1'); $.fn.MyPlugin('init','para2'); });
这个问题怎么解决呢?
你的插件代码写得有问题。不要用闭包把对象关起来。。。
第一次实例化的时候用一个对象保存你这个插件,第2次在用一个对象保存,不然你这当然会被覆盖,就相当与一个对象你修改了他
不是太理解呢 我实例化插件 怎么用对象保存呢?
@握爪: 实例化插件不就是实例化对象,你的插件是你自己写的?
@握爪: 发现同样的意思,大神说的就是专业多了
@稳稳的河: 插件是自己写的
闭包慎用
这个需要你把插件代码发出来看看才能解决了
页面上有两个元素都要实例化这个插件
-----------------------------
这么看来,你想在同一页面上拥有多个实例,且实例与使用该实例的元素有一定关系,那么你应该使用$.fn.extend进行扩展,而不是直接把方法挂在$.fn下。