2011-03-10 190 views
0

我們如何調用活動對象上的觸發器單擊事件。jquery觸發事件

$("#continue").live("keypress",function(){ 
if (e.which == 32 || e.which == 13) { 
    $(this).trigger("click"); 
    } 
}); 

當我按下按鈕進入如果塊進入,但它不會觸發按鈕。你能幫我解決嗎?提前致謝。

回答

0

您需要檢查$(this)是否真的與您的按鈕匹配。

嘗試更換:

$(this).trigger('click') 

隨着

$('#continue').trigger('click') 
+0

如果你給這個$('#continue')。trigger('click') 它的工作。但如果我們給$(這個)不起作用。我正嘗試在單擊事件中編寫四個以上的id。 – shaik 2011-03-10 11:19:00

2

您使用參數 「E」,但從來沒有真正通過它作爲一個參數。

$("#continue").live("keypress",function(){ 

需求是:

$("#continue").live("keypress",function(e){ 
+0

謝謝。我和你解釋過的一樣。但它不起作用 – shaik 2011-03-10 11:21:17

+0

沒有通過事件是代碼的問題,但這不能解決問題。正如我在下面提到的,並非所有IE版本都支持e.which,也沒有(正確地介意你)針對「特殊鍵」觸發onpress事件。 – 2011-03-10 11:42:26

+0

從來沒有想到過IE,因爲它沒有在問題中提到過(*微笑*)已經向上投票了;這是很棒的演繹工作。 – Athena 2011-03-10 12:19:57

2

試試這個:

$("#continue").live("keyup",function(e){ 
if (e.keyCode == 32 || e.keyCode == 13) { 
    $(this).trigger("click"); 
    } 
}); 

我在這個崗位涵蓋這一點:EnterKey is not working sometimes in IE8, using jQuery's keyPressed

但基本上也有 「特殊鍵」不會在按鍵上觸發,而且您必須使用keydown或keyup。

這裏舉例:http://jsfiddle.net/uS4XK/1/

雖然我必須說實話,這是一個奇怪的行爲想。你想在#繼續時點擊事件,當他們按下輸入?

+0

謝謝傑里米。它的工作... – shaik 2011-03-10 11:47:34

+0

如果這回答你的問題,請給它複選標記:)很高興幫助。 – 2011-03-10 11:58:17