在做某事后重置 .one("点击")?



以防止连续两次启动事件,是否可以执行这样的操作?

$('.examplediv').one('click', function() {
    //doing a bunch of stuff
    //somehow rebind the .one('click') <------
});

我想在//做一些事情之后重置.one('click'),以便可以再次触发整个事件。

-edit-

我尝试了Rockethazmats解决方案,

$('.examplediv').on('click', function() {
    if(!$(this).data('click_running')){
        $(this).data('click_running', true);
        //doing a bunch of stuff
        $(this).data('click_running', false);
    }
});

但是,如果我双击它真的很快。

如果我暂停了,应该像这样吗?

$('.examplediv').on('click', function() {
    if(!$(this).data('click_running')){
        $(this).data('click_running', true);
        //doing a bunch of stuff
        setTimeout(function() {
            $(this).data('click_running', false);
        }, 2500);
    }
});

虽然我双击它,但至少不会连续两次发射它,但使用上述代码,尽管超时,我再也无法按下它吗?显然我在做错事。

只需使用off()

$('.examplediv').off('click');

您可以尝试在元素中添加"运行"标志,以阻止事件。

$('.examplediv').on('click', function() {
    if(!$(this).data('click_running')){
        $(this).data('click_running', true);
        //do some stuff
        //make the .examplediv accept another click event?
        $(this).data('click_running', false);
    }
});

相关内容

  • 没有找到相关文章

最新更新