jQuery MiniUI

标题: button的un事件没有效果 [打印本页]

作者: asd1122    时间: 2017-9-28 18:43:51     标题: button的un事件没有效果

在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方法。求助??


作者: felt    时间: 2017-9-29 09:24:37

mini.get(id).un("click",A)。
只能根据函数名来解绑,不能是匿名函数。
作者: asd1122    时间: 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上没有这个方法,所以解绑不了?
作者: felt    时间: 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>
复制代码

作者: asd1122    时间: 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","")都没有效果
作者: asd1122    时间: 2017-9-29 12:05:53

felt 发表于 2017-9-29 11:09
你这解绑的时候肯定要能获取到A这方法,才能解绑的

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




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2