jQuery只运行onclick函数一次

时间:2014-03-06 19:19:54

标签: javascript jquery

如何才能执行此功能一次? 我尝试了.one,但它不起作用

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

5 个答案:

答案 0 :(得分:2)

$('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);
}

答案 1 :(得分:2)

如果您想这样做,只需点击一次即可启用

试试这个:

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

});

答案 2 :(得分:1)

使用.off(),名称间隔为event names

$('a.inspire-tag').on('click.myevent', function () {
    if (...)
    // remove current event handler
    $(this).off('click.myevent')
});

答案 3 :(得分:0)

var oneTime = true;
$('a.inspire-tag').on('click',function () {         
    if(oneTime) {
        $('html, body').animate({
           scrollTop: $(".button-inspire").offset().top
        }, 400);
        oneTime = false;
    }
});

答案 4 :(得分:0)

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/