当前位置:  开发笔记 > 编程语言 > 正文

jQuery onClick执行

如何解决《jQueryonClick执行》经验,为你挑选了2个好方法。

我有这个用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);
    });

Jim.. 10

只需使用全局忙标志即可.当您输入单击处理程序时,请检查它,并且仅在它为假时才继续.立即将其设置为true,然后在动画结束时将其设置为false.JavaScript是单线程的,因此无需担心竞争条件.

var busy = false;
$("...").onclick(function() {
    if (busy) return false;
    busy = true;
    $("...").animate(..., ..., ..., function() {
        busy= false;
    });
    return false;
});


cllpse.. 5

看看jQuery UI.特别是插件的效果部分.我在我的个人网站上使用了幻灯片效果(点击方框两侧的箭头).

我阻止用户在效果结束前多次触发效果 - 使用一个事件处理程序和一个回调函数.

这是源代码



1> Jim..:

只需使用全局忙标志即可.当您输入单击处理程序时,请检查它,并且仅在它为假时才继续.立即将其设置为true,然后在动画结束时将其设置为false.JavaScript是单线程的,因此无需担心竞争条件.

var busy = false;
$("...").onclick(function() {
    if (busy) return false;
    busy = true;
    $("...").animate(..., ..., ..., function() {
        busy= false;
    });
    return false;
});



2> cllpse..:

看看jQuery UI.特别是插件的效果部分.我在我的个人网站上使用了幻灯片效果(点击方框两侧的箭头).

我阻止用户在效果结束前多次触发效果 - 使用一个事件处理程序和一个回调函数.

这是源代码

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有