如何停止点击方法多次工作?

时间:2012-09-04 01:28:27

标签: javascript jquery

我在按钮+链接上有一个点击方法,可以通过点击动画来显示内容。但是,我希望它只能工作一次。我点击它后设法禁用了按钮,所以这很好。但是我在链接上尝试了.disabled = true,但它没有用。有什么方法可以阻止它被多次点击吗?

JS

$('#frontbutton, #loginlink').on('click', function(){
    $('.popup').hide();
    usernameInput.val('');
    emailInput.val('');
    passwordInput.val('');
    confirmInput.val('');
    $('.intro').animate({opacity: '0.5'}, 1000).delay(800).animate({
        left: "+=300px"
    });
    setTimeout(function(){
        $('.formholder').show()}, 2000);
    $('.toppic').animate({opacity: '0.5'}, 1000).delay(800).animate({
        top: "+=300px"
    });
    document.getElementById('frontbutton').disabled = true;
});

3 个答案:

答案 0 :(得分:5)

只需使用.one()代替.on()

$('#frontbutton, #loginlink').one('click', function(){

.one()的行为与.on()类似,但处理程序在调用后会解除绑定。

答案 1 :(得分:1)

尝试使用one('click',function(){...代替on('click',function(){...。该事件每个元素只运行一次 Here's the documentation

答案 2 :(得分:1)

使用jquery,您可以通过这种方式关闭事件

 $('#frontbutton, #loginlink').on('click.myEventNamespace',function(){
       //Run my code
       $('#frontbutton, #loginlink').off('click.myEventNamespace');
 });

您也可以在活动中执行此操作。认为当你不使用jQuery时可能值得知道

 this.removeEventListener('click',arguments.callee,false);