我有一些点击功能...整个动作很好但如果我快速双击通话按钮,一些元素会产生两次。你能告诉我如何在第一次点击后停止功能传播吗?很多求助,这是我的代码:
$('#start_panel ul li').click(function(event){
if($(this).hasClass('eng')){
...
}
else if($(this).hasClass('ger')){
...
}
else if($(this).hasClass('pln')){
...
}
event.stopPropagation();
});
答案 0 :(得分:3)
var clicked = false;
$('#start_panel ul li').click(function(event){
if (clicked) return;
clicked = true;
或使用one功能(略有不同:现在只需点击一下每个li元素):
$('#start_panel ul li').one('click', function(event){
答案 1 :(得分:0)
请改为尝试:
var myClicker = function(event){
var self = event.currentTarget;
if($(self).hasClass('eng')){
...
}
else if($(self).hasClass('ger')){
...
}
else if($(self).hasClass('pln')){
...
}
$(self).one('click', myClicker);
});
$('#start_panel ul li').one('click', myClicker);
答案 2 :(得分:0)
var i=0;
$('#start_panel ul li').click(function(event){
if(i==1){
i=0;
return false;
}
if($(this).hasClass('eng')){
...
}
else if($(this).hasClass('ger')){
...
}
else if($(this).hasClass('pln')){
...
}
i++;
});
答案 3 :(得分:0)
要清除之前的请求,请使用Stop(true,true)
$('#start_panel ul li').stop(true,true).click(function(event){
if($(this).hasClass('eng')){
...
}
else if($(this).hasClass('ger')){
...
}
else if($(this).hasClass('pln')){
...
}
event.stopPropagation();
});
答案 4 :(得分:0)
您可以在第一次点击后取消绑定点击事件:
$('#start_panel ul li').click(function(event){
$(this).unbind('click');
if($(this).hasClass('eng')){
...
}
else if($(this).hasClass('ger')){
...
}
else if($(this).hasClass('pln')){
...
}
event.stopPropagation();
});