2013-01-11 105 views
0

我需要觸發點擊某個按鍵動作,同樣如果它是在我的鍵盤上的向上或向下鍵腳本將從指定元素中刪除某些類。所以按鍵正在工作,但觸發和向下按沒有,這是我的代碼,需要幫助。如何用jquery觸發點擊按鍵

$('.main_search_field').keypress(function(evt){ 
    $('.live_search_plugin').addClass('visible'); 

    var scroll_pane = $('.scroll-pane'); 
     scroll_pane.click(); 
     scroll_pane.trigger('click'); 
    if (evt.keyCode == 40) { 
     $('.live_search_list ul li').removeClass('active');  
    } 
}); 
+0

爲什麼要觸發點擊?最好爲click事件分配一個處理程序,然後在需要的地方運行處理程序。 – tborychowski

+0

BC我滾動窗格中的列表,如果我點擊它,我可以通過鍵上下滾動這個列表,然後點擊我滾動整個頁面 - 身體 – Lukas

+0

我明白了!在這種情況下,你需要把重點放在這個列表上(但只能看到可見的輸入,鏈接和按鈕)。觸發點擊將不起作用 – tborychowski

回答

3

你可以試試下面的代碼:

var e = jQuery.Event("keypress"); 
e.which = 50; 
$(".main_search_field").trigger(e); 

e.which所需字符放置代碼。

0

你必須檢查的EVT按鍵像這樣:

if (evt.which == 40) { } 

當使用按鍵,平時我檢查哪個鍵我想我的運行函數中的任何代碼之前進行互動。如果你不這樣做,你的代碼將在任何按鍵下運行。

0

.keypress()可能不會在這裏的最佳解決方案,可以更好使用keydown()keyup(),或使用完整版本:.bind('keydown', handler)(同上,用於KEYUP)

從jQuery文檔:

注意:由於keypress事件未被任何官方規範所覆蓋,因此在瀏覽器,瀏覽器版本和平臺上使用時遇到的實際行爲可能會有所不同。 http://api.jquery.com/keypress/

.click().trigger("click")速記和你正在使用它很好,但實際上,你有$('.scroll-pane)一個單擊處理?

您的代碼將(假設瀏覽器依賴關係)在$('.scroll-pane')上觸發兩次點擊,然後if()進行評估。但你沒有向我們展示你的點擊處理程序scroll-pane,所以我們不能看出是否有問題。

+0

我的滾動窗格塊是一個實時搜索,所以當我在我的搜索輸入上鍵入一些字時,滾動窗格塊顯示,同時我想觸發點擊此列表/ scroll_pane for通過keyup keydown滾動這個列表 – Lukas