简体   繁体   English

jQuery仅运行一次onclick函数

[英]jQuery run onclick function only once

How can I execute this function only one time? 我如何只能执行一次此功能? I tried .one but it doesn't work 我尝试了.one但它不起作用

$('a.inspire-tag').on('click',function () {         
    $('html, body').animate({
        scrollTop: $(".button-inspire").offset().top
    }, 400);
});
$('a.inspire-tag').on('click',doThis);
function doThis () {         
    $('html, body').animate({
        scrollTop: $(".button-inspire").offset().top
    }, 400);
    //you can off all on callback function
    $('a.inspire-tag').off('click',doThis);
}

If you want to do is just click once to enable 如果您要这样做,只需单击一次即可

Try this: 尝试这个:

$('a.inspire-tag').on('click',function () {         
    $('html, body').animate({
        scrollTop: $(".button-inspire").offset().top
    }, 400);
    $('a.inspire-tag').off('click');

});

Use .off() , with name spaced event names 使用.off() ,并在事件名称之间使用名称间隔

$('a.inspire-tag').on('click.myevent', function () {
    if (...)
    // remove current event handler
    $(this).off('click.myevent')
});
var oneTime = true;
$('a.inspire-tag').on('click',function () {         
    if(oneTime) {
        $('html, body').animate({
           scrollTop: $(".button-inspire").offset().top
        }, 400);
        oneTime = false;
    }
});
var inspiretag = $('a.inspire-tag');
inspiretag.on('click',function () {         
    $('html, body').animate({
        scrollTop: $(".button-inspire").offset().top
    }, 400);
inspiretag.off('click');
});

http://api.jquery.com/off/ http://api.jquery.com/off/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM