当存在一些li's元素时,取消绑定某些函数
unbind some function when there are some li's elements
我正在尝试打开和关闭一个。click功能。这是我的jquery代码:
$('.original li').on('click',clonaCol);
$('.anade li').on('click',desselec);
var numeroli;
var max=3;
var numero;
$('.original').on('click', function(){
numeroli = $('#count').children("li").length; alert(numeroli);
if(numeroli>=3){
$('.original li').off('click',clonaCol);
}
else{
$('#dialog').show();
}
});
使用此代码,我可以在两列之间交换li元素,但我的问题是我无法停止第一个函数,我将li传递给第二个ul,当第二个ul上有3个元素时,发出警告文本并推进测试。
这有点难以遵循,并且会更容易与小提琴,但我很确定的问题是,事件冒泡UP,所以你的处理程序附加到。original将始终运行后附加到。original li的处理程序。基本上,这意味着当您在。original ul中单击列表项时,li的单击事件运行clonaCol函数,然后事件弹出到。original,您取消绑定单击事件处理程序。
要解决这个问题,您可以在列表项处理程序中执行检查并返回false或显示您的对话框或任何您想要做的事情,如果有超过3英里。像这样:
$('.original li').on('click',function () {
if ($('#count li').length>=3) {
$('#dialog').show();
} else {
clonaCol();
}
});
相关文章:
- 如何销毁/删除/取消绑定SnapSVG.js
- 取消绑定主干视图事件
- 从父元素取消绑定滚动事件并绑定到子元素
- 使用Re-base时,在React中从状态绑定和取消绑定Firebase
- javascript onchange取消绑定错误|未定义
- 在javascript中取消绑定侦听器
- 在偶数侦听器块中绑定和取消绑定
- 取消绑定angular中的scope属性
- 根据文件类型取消绑定和重新绑定click事件处理程序
- 取消绑定而不是重新绑定
- 取消绑定/绑定单击jquery selectbox插件
- 取消绑定后未提交的表单
- 动态取消绑定eventListeners(垃圾收集)
- 取消绑定父节点和子节点
- 取消绑定由加载jQuery'的外部脚本添加的事件;s的getScript函数
- 正在取消绑定jQuery事件处理程序
- 取消绑定除特定命名空间之外的所有命名空间中的事件
- 删除和取消绑定主干中的子视图
- 取消绑定窗口.onbeforeunload()取消
- setTimeout vs. 事件绑定/取消绑定;什么更有效