首页 新闻 会员 周边

函数参数被覆盖的问题

0
悬赏园豆:200 [已解决问题] 解决于 2015-09-01 17:27

我有个插件,MyPlugin,对外暴露了一个init的接口实例化它    现在在页面加载的时候,页面上有两个元素都要实例化这个插件,所以调用了两次   但是发现init的参数每次被覆盖成了‘para2’

$(function(){
  $.fn.MyPlugin('init','para1');
  $.fn.MyPlugin('init','para2');
});

这个问题怎么解决呢?

握爪的主页 握爪 | 初学一级 | 园豆:22
提问于:2015-09-01 15:55
< >
分享
最佳答案
0

你的插件代码写得有问题。不要用闭包把对象关起来。。。

收获园豆:100
幻天芒 | 高人七级 |园豆:37175 | 2015-09-01 16:12
其他回答(4)
0

第一次实例化的时候用一个对象保存你这个插件,第2次在用一个对象保存,不然你这当然会被覆盖,就相当与一个对象你修改了他

稳稳的河 | 园豆:4216 (老鸟四级) | 2015-09-01 16:01

不是太理解呢   我实例化插件   怎么用对象保存呢?

支持(0) 反对(0) 握爪 | 园豆:22 (初学一级) | 2015-09-01 16:02

@握爪: 实例化插件不就是实例化对象,你的插件是你自己写的?

支持(0) 反对(0) 稳稳的河 | 园豆:4216 (老鸟四级) | 2015-09-01 16:05

@握爪: 发现同样的意思,大神说的就是专业多了

支持(0) 反对(0) 稳稳的河 | 园豆:4216 (老鸟四级) | 2015-09-01 16:13

@稳稳的河: 插件是自己写的

支持(0) 反对(0) 握爪 | 园豆:22 (初学一级) | 2015-09-01 16:16
0

闭包慎用

收获园豆:100
✎﹏ℳ๓₯㎕ღ | 园豆:1499 (小虾三级) | 2015-09-01 16:41
0

这个需要你把插件代码发出来看看才能解决了

刘宏玺 | 园豆:14020 (专家六级) | 2015-09-01 16:56
0

页面上有两个元素都要实例化这个插件

-----------------------------

 这么看来,你想在同一页面上拥有多个实例,且实例与使用该实例的元素有一定关系,那么你应该使用$.fn.extend进行扩展,而不是直接把方法挂在$.fn下。

细雨黄昏 | 园豆:202 (菜鸟二级) | 2015-09-06 09:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册