可以通過刪除匿名函數來簡化圖1中的事件處理程序嗎?我找不到用$.proxy解決這個問題的方法,但也許我錯過了一些東西。自定義事件的觸發器在圖2。該事件處理程序是否可以簡化並刪除匿名函數?
需要使用.bind,因爲正在使用較舊的jQuery版本,並且此時無法更新。
doSomething的簽名需要兩個參數,都是字符串。
圖1:事件處理程序
$(mySelector).bind('EVT_MY_CUSTOM', function (e, foo, bar) {
doSomething(foo, bar);
});
圖2:觸發
$(mySelector).trigger('EVT_MY_CUSTOM', ['apple', 'banana']);
在哪裏你看到這些代碼片段的複雜性? –
爲什麼不修改'doSomething',所以它需要第一個參數來忽略它呢?然後你可以直接將事件綁定到它。 – Barmar
代碼是否正常工作?除非您明確描述問題,否則匿名或非匿名函數並不重要? –