jquery-避免双击
我有一个简单的动画问题是我想动画结束之前,我可以再次点击jquery-避免双击,jquery,events,click,jquery-animate,Jquery,Events,Click,Jquery Animate,我有一个简单的动画问题是我想动画结束之前,我可以再次点击 $(".next").click(function() { $('#result').animate({ left: '-=250', }, 1000, function() { pos = $('#result').position(); if (pos.left <= -550) { $('.next').hide(); } if (pos.left <= -250) { $('
$(".next").click(function() {
$('#result').animate({
left: '-=250',
}, 1000, function() {
pos = $('#result').position();
if (pos.left <= -550) {
$('.next').hide();
}
if (pos.left <= -250) {
$('.prev').show();
}
});
$(“.next”)。单击(函数(){
$(“#结果”)。设置动画({
左:'-=250',
},1000,函数(){
pos=$(“#结果”).position();
如果(pos.left在单击时禁用按钮,并在相同时间段后使用“设置超时”功能启用该按钮
$(".next").click(function() {
$(this).enabled = false;
setTimeout('enableButtons()', 250); }
$('#result').animate({
left: '-=250',
}, 1000, function() {
pos = $('#result').position();
if (pos.left <= -550) {
$('.next').hide();
}
if (pos.left <= -250) {
$('.prev').show();
}
});
function enableButtons() {
$(".next").enabled = true;
}
$(“.next”)。单击(函数(){
$(this).enabled=false;
setTimeout('enableButtons()',250);}
$(“#结果”)。设置动画({
左:'-=250',
},1000,函数(){
pos=$(“#结果”).position();
如果(pos.left答案很简单,请使用.data()
方法在项目上设置可单击的标志。您可以在完整功能中重新启用它
$(".next").click(function() {
var btn = $(this);
if (btn.data('running'))
return;
btn.data('running', true);
$('#result').animate({
left: '-=250',
}, 1000, function() {
pos = $('#result').position();
if (pos.left <= -550) {
$('.next').hide();
}
if (pos.left <= -250) {
$('.prev').show();
}
// Unset it here, this lets the button be clickable again
btn.data('running', false);
}
);
});
来自jQuery.com:
.data()方法允许我们以一种安全的方式将任何类型的数据附加到DOM元素,从而避免循环引用和内存泄漏
我们可以为单个元素设置多个不同的值,并在以后检索它们:
在动画上使用complete方法(您已经使用该方法来显示/隐藏下一个/上一个按钮),我们可以重新启用按钮以单击
请注意,我们将$(this)
存储到btn
中,这样就可以通过关闭complete函数来访问它
$(".next").click(function() {
var btn = $(this);
if (btn.data('running'))
return;
btn.data('running', true);
$('#result').animate({
left: '-=250',
}, 1000, function() {
pos = $('#result').position();
if (pos.left <= -550) {
$('.next').hide();
}
if (pos.left <= -250) {
$('.prev').show();
}
// Unset it here, this lets the button be clickable again
btn.data('running', false);
}
);
});
$(“.next”)。单击(函数(){
var btn=$(本);
如果(btn.data(‘运行’))
返回;
btn.数据(“正在运行”,为真);
$(“#结果”)。设置动画({
左:'-=250',
},1000,函数(){
pos=$(“#结果”).position();
如果(pos.left,可以使动画在动画
再次启动之前自动完成:
$('#result').stop(true, true).animate({ ...
单击时禁用按钮,并使用.animate函数的完整函数调用重新启用它:
.设置动画(属性[,持续时间][,缓和][,完成])
complete动画完成后要调用的函数。您有可以共享的小提琴吗?。data
与data item=“asd”
属性不同。它从jQuery 1.3开始就存在,并存储对包装该dom的jQuery对象引用的数据。从jQuery 1.4.3开始。data()由数据属性自动填充,但是之前的HTML5完全支持数据()
。它只是在内存中存储一个javascript对象。