Javascript 防止双击某些元素
我有一个可点击的Javascript 防止双击某些元素,javascript,jquery,Javascript,Jquery,我有一个可点击的,可以执行一些操作。然而,当我快速双击时,奇怪的事情发生了。因此,我想阻止它,并确保它只是一个可点击的事件 $.each(response, function(index) { $('#myID').append('<tr><td onclick="select(this)" >'+ response[index] +'</td></tr>'); }); function select(element){ ... } $
,可以执行一些操作。然而,当我快速双击时,奇怪的事情发生了。因此,我想阻止它,并确保它只是一个可点击的事件
$.each(response, function(index) {
$('#myID').append('<tr><td onclick="select(this)" >'+ response[index] +'</td></tr>');
});
function select(element){
...
}
$。每个(响应、函数(索引){
$('#myID').append(''+response[index]+'');
});
功能选择(元素){
...
}
我尝试使用jQuery的.one()
函数,但上面的代码是另一个事件的产物。因此,我不能使用$(document).ready()代码>这里。据我所知,我必须让它像onclick=“select(this)”
。。。它是有效的。但这里我需要禁用双击
有什么帮助吗?所以添加一个检查,检查Ajax请求是否处于活动状态
function select(element){
var elem = $(element);
if(elem.hasClass("active")) { // is ajax call active?
return false;
}
elem.addClass("active"); // set it that it is active
$.ajax({
url: "foo"
})
.done(function(){})
.always(function(){
elem.removeClass("active"); // call is done, so remove active state
})
}
因此,添加一个检查,确保Ajax请求处于活动状态
function select(element){
var elem = $(element);
if(elem.hasClass("active")) { // is ajax call active?
return false;
}
elem.addClass("active"); // set it that it is active
$.ajax({
url: "foo"
})
.done(function(){})
.always(function(){
elem.removeClass("active"); // call is done, so remove active state
})
}
您只需禁用按钮,直到ajax完成其操作
function select(element){
$(element).prop('disabled', true);
$.ajax({
url'url',
success:function(response){
$(element).prop('disabled', false);
}
});
}
您只需禁用按钮,直到ajax完成其操作
function select(element){
$(element).prop('disabled', true);
$.ajax({
url'url',
success:function(response){
$(element).prop('disabled', false);
}
});
}
选择功能不能只处理案例吗?处理案例必须在选择功能中。但是如何呢?你可以认为这是实现它的秘诀。可以在创建“td”元素时添加类。然后可以编写如下代码:$(“.newClassAdded”).on(“dblclick”,函数(e){e.preventDefault();})@VinayGayakwad不起作用,单击事件仍将触发两次。这需要使用由dblclick处理程序设置的标志来完成,然后在click处理程序中进行计算@harunB10那么select在做什么?单击两次会导致问题的原因。我需要这些基本信息,以便我知道为什么点击两次会有问题。选择功能不能只处理案例吗?处理案例必须在选择功能中。但是如何呢?你可以认为这是实现它的秘诀。可以在创建“td”元素时添加类。然后可以编写如下代码:$(“.newClassAdded”).on(“dblclick”,函数(e){e.preventDefault();})@VinayGayakwad不起作用,单击事件仍将触发两次。这需要使用由dblclick处理程序设置的标志来完成,然后在click处理程序中进行计算@harunB10那么select在做什么?单击两次会导致问题的原因。我需要这些基本信息,这样我就知道为什么点击两次会有问题。