我經常使用jQuery .trigger()
來處理重複事件。使用trigger()進行重複事件處理是不好的做法嗎?
舉例來說,如果我有一個具有四個按鈕用於導航的小部件(上,下,左,右),以及事件處理程序,勢必像每個按鈕:
$('#up').on('click', function() {
// move up
...
});
到目前爲止,小部件效果很好,現在我想在up/down/left/right arrow key
上添加鍵盤快捷鍵,這樣每個按鈕的工作原理與按下up/down/left/right button
時完全相同。
在這種情況下,我經常使用.trigger()
來使鍵盤快捷鍵成爲這些按鈕的包裝。
$(document).on('keydown', function(e) {
// up arrow key
if (e.keyCode == 38) $('#up').trigger('click');
...
});
使用.trigger()
這樣不好的做法是?
我認爲將圖書館作爲黑匣子處理時非常方便。如果已經有一些按鈕來幫助控制庫,那麼即使不知道庫的API,我也可以通過在這些按鈕上觸發點擊事件來使用庫的功能。
我只想做一個回調函數,然後調用它的地方我想在代碼,而不是觸發「點擊」。 – Brewal
如果這個功能是你在窗口小部件上添加的東西,是的,觸發將是一個合適的方式。如果這是您添加到小部件本身的功能,則可能有更好的方法來處理它。 –
你正以正確的方式使用'trigger'。你也可以使用快捷方式'$('#up')。click();'如果你喜歡 – sdespont