如何在项目中单击两次后启动功能?

时间:2012-07-31 08:16:55

标签: javascript jquery menu click

我在项目菜单中使用环形交叉脚本。单击菜单项后,我有一些操作。我想在第二次单击此选定项目后触发此操作/功能。你能帮我解决这个问题吗?

这是我职能的开始:

$('.main_content ul li').bind({click: function(){

4 个答案:

答案 0 :(得分:1)

API:http://api.jquery.com/dblclick/

将事件处理程序绑定到“dblclick”JavaScript事件,或在元素上触发该事件。

希望它有助于您的事业:)

<强>码

$('.main_content ul li').dblclick( function(){

});

答案 1 :(得分:1)

编辑忽略此信息并使用Tats_innit的答案。我可耻地没有意识到jQuery的dblclick功能。

(function(){
    var state = false;
    $('.main_content ul li').click(function(){
        if( state === false ) state = true;
        if( state ){
            state = false;
            //do other stuff here
        }
    });
});

答案 2 :(得分:1)

一种方法是手动取消第一次点击:

$('.main_content ul li').click(function() {

    if(!$(this).data('clicked-once')) {
        $(this).data('clicked-once', true);
        return; // cancel first execution
    }

    // handler body here

});

Demo

另一个,也许更整洁,就是使用one方法来绑定监听器:

$('.main_content ul li').one('click', function() {
   $(this).click(function() {
      // handler body here
   });
});

Demo

当然,如果是实际双击你试图听,你应该使用Tats_innit建议的dblclick事件。也就是说,如果您只想在接下来的两次点击中触发一个事件。使用双击,三次快速点击只会触发一次该功能,并且使用上述解决方案,它会触发两次。使用双击,两次点击并在它们之间有一些延迟不会导致功能完全触发,上面的解决方案会导致它触发一次。

答案 3 :(得分:0)

您可以使用jQuery&#39; toggle event helper,并且只绑定一个函数。在线:

function iWantThis2bCalled()
{
}

$("#someId").toggle(function(){}, iWantThis2bCalled);