2

我在按钮 + 链接上有一个点击方法,该方法通过点击来为内容设置动画。但是,我希望它只工作一次。单击后我设法禁用了该按钮,这很好。但是我尝试.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;
});
4

3 回答 3

5

只需使用.one()而不是.on()

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

.one()行为类似于.on(),但处理程序一旦被调用就会解除绑定。

于 2012-09-04T01:30:30.200 回答
1

尝试one('click',function(){...代替on('click',function(){.... 该事件每个元素只会运行一次。
这是文档

于 2012-09-04T01:30:41.927 回答
1

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

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

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

 this.removeEventListener('click',arguments.callee,false);
于 2012-09-04T01:34:28.110 回答