jQuery MiniUI

 找回密码
 立即注册
查看: 2073|回复: 5
打印 上一主题 下一主题

button的un事件没有效果 [复制链接]

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2017-9-28 18:43:51 |只看该作者 |倒序浏览
在A页面上有一个id='AA'按钮绑定了A事件,onclick='A',有一个tabs页签加载了B页面。在B页面的js上里通过$(function(){window.parent.mini.get("AA").un("click",A)});再去点击AA按钮,还是会触发A事件。控制台看了window.parent.mini.get("AA")是能获取到对象的,但是为什么取消不了绑定的事件呢?如果是用on的方法on("click",B)则是会触发B方法然后到A方法。求助??

Rank: 8Rank: 8

沙发
发表于 2017-9-29 09:24:37 |只看该作者
mini.get(id).un("click",A)。
只能根据函数名来解绑,不能是匿名函数。

Rank: 3Rank: 3

板凳
发表于 2017-9-29 10:11:39 |只看该作者
felt 发表于 2017-9-29 09:24
mini.get(id).un("click",A)。
只能根据函数名来解绑,不能是匿名函数。

这里的A方法,是function A(){}这样的声明方式。但是我这里调用un("click",A)是在tabs加载的页面JS上调用的,是不是因为A方法写在window.parent页面上,而tabs加载的页面JS上没有这个方法,所以解绑不了?

Rank: 8Rank: 8

地板
发表于 2017-9-29 11:09:42 |只看该作者
asd1122 发表于 2017-9-29 10:11
这里的A方法,是function A(){}这样的声明方式。但是我这里调用un("click",A)是在tabs加载的页面JS上调用 ...

你这解绑的时候肯定要能获取到A这方法,才能解绑的
  1. <button onclick="unClick()">解绑</button>
  2. <a class="mini-button" id="btn1" onclick="onClick">按钮</a>
  3. <script type="text/javascript">
  4.     mini.parse();
  5.     function onClick(e) {
  6.         mini.alert(1);
  7.     }
  8.     function unClick() {
  9.        mini.get("btn1").un("click",onClick);
  10.     }
  11. </script>
复制代码

Rank: 3Rank: 3

5#
发表于 2017-9-29 11:46:55 |只看该作者
felt 发表于 2017-9-29 11:09
你这解绑的时候肯定要能获取到A这方法,才能解绑的

我发现页面上按钮的onclick的写法都是onclick="A()"或者是onclick="javascript:B()",这样的写法是不是就导致un无法解绑?如果是这样的话,还有解绑的其他方式吗?我试了jquery的removeAttr("onclick")或者attr("onclick","")都没有效果

Rank: 3Rank: 3

6#
发表于 2017-9-29 12:05:53 |只看该作者
felt 发表于 2017-9-29 11:09
你这解绑的时候肯定要能获取到A这方法,才能解绑的

好吧,偏偏忘了最普通的docment,用普通的document操作可以的

Archiver|普加软件

GMT+8, 2024-10-8 05:22 , Processed in 1.046358 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部