2013-06-02 31 views
3

在使用Javascript/jQuery的,我有一個按鈕,有一個點擊事件定義如下:如何在javascript/jquery中區分鼠標點擊和.click()?

$("#target").click(function() { 
    var mouse_click = ________________; 
    // do stuff 
    if (mouse_click) { 
     // do stuff 
    } 
    // do stuff 
}); 

我也有代碼做

$('#target').click(); 

我怎樣才能獲得變量mouse_clicktrue ,如果用戶使用鼠標手動點擊標籤,並且使用.click()函數單擊標籤時變量爲false

感謝

+0

謝謝,我只是去與重複的答案,和它的工作。 – omega

回答

6

您可以使用此:

$("#target").click(function(e) { 
    var mouse_click = !(e.originalEvent === undefined); 
    // do stuff 
    if (mouse_click) { 
     // do stuff 
    } 
    // do stuff 
}); 

,或者你可以檢查e.isTrigger每當一個事件中的jQuery觸發其設置。你只需要在第二行更改爲:

var mouse_click = !e.isTrigger; 

雙方將工作,但因爲它是一個小更簡潔,你可能更喜歡第二個選項。

這是工作:http://jsfiddle.net/2U3Us/4/

+1

是否有理由使用'? :'這裏的運營商?我知道JS偶爾會做出奇怪的轉換,但我會傾向於更簡單的'!(e.originalEvent === undefined)'和'!e.isTrigger',我自己。 –

+0

@ XavierHolt - 好點,它一定是滑了我的腦海。我剛剛更新了我的答案和小提琴。 – Joe

相關問題