2013-07-03 17 views
3

我有一個觸發自定義事件的方法。如何在jQuery中使用觸發器傳遞參數?

keyDown: function(keycode) { 
     $(window.APP).trigger('keyDown', keycode); 
    }, 

我需要趕上keycode從window.APP。 目前,即使爲alertDown傳遞正確的值時,alert的結果始終未定義。

任何想法我在做什麼錯在這裏?


在window.APP

keyDown: function(keyCode) { 
    alert(keyCode); 
    } 
} 

我使用jQuery 1.4.2

+1

側面說明:如果你要支持不同的瀏覽器,你要知道,keydown事件是「惡」,造成不同的瀏覽器使用不同的代碼。我建議你檢查這個鏈接http://unixpapa.com/js/key.html,瞭解你將要面對的問題以及這個鏈接來執行一個快速測試(不需要開發人員工具)http:// www .asquare.net/javascript/tests/KeyCode.html – sataniccrow

回答

2

試試這個:

keyDown: function(event, keyCode) { 
    alert(keyCode); 
    } 
+0

嘗試你的代碼我看到事件和keyCode爲undefined – GibboK

+1

@GibboK檢查這個小樣本http://tinker.io/73f85,它正在按預期工作 –

+0

我能夠感謝你的例子,調整我的代碼! :-) – GibboK

1

按照doc,爲trigger第二個參數是一個數組,所以你應該把它作爲$(window.APP).trigger('keydown', [keyCode])

0

你有沒有嘗試過這樣的:

keyDown: function(e) { 
    var code = (e.keyCode ? e.keyCode : e.which); 
    $(window.APP).trigger('keyDown', code); 
}, 
0

試試這個,

自定義事件window.APP

keyDown: function(e) { 
    $(window.APP).trigger('keyDown', e); 
}, 

keyDown: function(e) { 
    k=e.keyCode || e.which; 
    alert(k); 
}