2012-07-31 67 views
0

我爲我的項目菜單使用了一個迂迴腳本。菜單項點擊後我有一些操作。我想在此選定項目點擊第二次後觸發此操作/功能。你能幫我怎麼做嗎?如何在項目中點擊兩次後啓動功能?

這是我的函數的開始:

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

回答

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

當然,如果它是實際雙擊,您嘗試聽,你應該使用dblclick事件Tats_innit建議。也就是說,如果你只想連續點擊兩次點擊事件。通過雙擊,三次快速點擊只會觸發一次該功能,並且通過上述解決方案,它會觸發兩次。通過雙擊,兩次點擊之間有一些延遲並不會導致函數根本無法觸發,而上面的方法會導致它觸發一次。

+0

給你+1以及bruv! ':)' – 2012-07-31 08:35:06

+0

不錯,thx男人它的工作很好,corectly,chears和伏特加爲你拍攝! ;) – Lukas 2012-07-31 08:42:31

1

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

綁定的事件處理程序 「DBLCLICK」 JavaScript事件,或者觸發元素上的事件。

希望它可以幫助你的事業:)

代碼

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

}); 
+1

雖然doubleclick與兩次點擊並不完全相同。 – 2012-07-31 08:27:46

+0

確實@DavidHedlund我同意布魯夫! ':''給你/生活?看來OP正在尋找dblclick而不是任何基於類的解決方案。 – 2012-07-31 08:33:09

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 
     } 
    }); 
}); 
+0

+1反正男人!玩得開心':)' – 2012-07-31 08:34:42

0

您可以使用jQuery的toggle event helper,並且只綁定一個函數。東西線:

function iWantThis2bCalled() 
{ 
} 

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

喲布魯夫我認爲你正在把它放在一個'')''可能或可能不正確值得解釋一下':)' – 2012-07-31 08:35:56

+0

雖然這並不妨礙第一次點擊,但是每一次第二次點擊。五次點擊= 2次執行'iWantThis2bCalled'。 – 2012-07-31 08:40:18

相關問題