我正在尝试打开并关闭一个.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个元素时,关闭警告文本并推进测试。
答案 0 :(得分:0)
这有点难以理解,并且用小提琴会更容易,但我很确定问题是事件冒泡,所以你的处理程序附加到.original将始终在附加到.original li的处理程序之后运行。基本上,这意味着当您单击.original ul中的列表项时编写它时,li的click事件运行函数clonaCol然后事件冒泡到.original并且解除绑定click事件处理程序。
要解决此问题,您可以检查列表项处理程序并返回false或显示您的对话框,或者如果超过3 li则显示您要执行的操作。像这样:
$('.original li').on('click',function () {
if ($('#count li').length>=3) {
$('#dialog').show();
} else {
clonaCol();
}
});