为了账号安全,请及时绑定邮箱和手机立即绑定

函数参数被覆盖的问题

函数参数被覆盖的问题

我有个插件,MyPlugin,对外暴露了一个init的接口实例化它    现在在页面加载的时候,页面上有两个元素都要实例化这个插件,所以调用了两次   但是发现init的参数每次被覆盖成了‘para2’ $(function(){   $.fn.MyPlugin('init','para1');   $.fn.MyPlugin('init','para2'); }); 这个问题怎么解决呢?
查看完整描述

9 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

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

查看完整回答
反对 回复 2018-12-24
?
慕村9548890

TA贡献1884条经验 获得超4个赞

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

查看完整回答
反对 回复 2018-12-24
?
HUWWW

TA贡献1874条经验 获得超12个赞

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

查看完整回答
反对 回复 2018-12-24
?
互换的青春

TA贡献1797条经验 获得超6个赞

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

查看完整回答
反对 回复 2018-12-24
?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

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

查看完整回答
反对 回复 2018-12-24
?
Qyouu

TA贡献1786条经验 获得超11个赞

闭包慎用

查看完整回答
反对 回复 2018-12-24
?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

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

查看完整回答
反对 回复 2018-12-24
?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

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

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

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

查看完整回答
反对 回复 2018-12-24
  • 9 回答
  • 0 关注
  • 446 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信