Wes*_*s P 1 javascript jquery animation onclick
我有这个用jQuery 1.2.5编写的javascript.它包含在我编写的插件的main函数()中.该插件是一个非常类似于jCarousel的水平图库滚动条.它可以自动计算宽度,并根据图像的大小和图像的大小确定滚动的数量,这就是正在进行的所有计算.
我的问题是,如何在上一次执行完成之前阻止它被触发.例如,如果我得到一点点快乐,只是疯狂地混搭.digi_next.在发生这种情况时,用户界面的情况不会很好,我想解决它:)我认为答案可能在于queue,但我尝试使用它并没有发现任何有价值的东西.
var self = this;
$(".digi_next", this.container).click(function(){
var curLeft = $(".digi_container", self.container).css("left").split("px")[0];
var newLeft = (curLeft*1) - (self.containerPad + self.containerWidth) * self.show_photos;
if (newLeft < ((self.digi_gal_width - (self.containerPad + self.containerWidth) * self.show_photos)) * -1) {
newLeft = ((self.digi_gal_width - (self.containerPad + self.containerWidth) * self.show_photos)) * -1;
}
$(".digi_container", self.container).animate({
left: newLeft + "px"
}, self.rotateSpeed);
});
Run Code Online (Sandbox Code Playgroud)
Jim*_*Jim 10
只需使用全局忙标志即可.当您输入单击处理程序时,请检查它,并且仅在它为假时才继续.立即将其设置为true,然后在动画结束时将其设置为false.JavaScript是单线程的,因此无需担心竞争条件.
var busy = false;
$("...").onclick(function() {
if (busy) return false;
busy = true;
$("...").animate(..., ..., ..., function() {
busy= false;
});
return false;
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21399 次 |
| 最近记录: |