爲jQuery的委託方法簽名記錄爲這樣:jQuery的委託參數順序
.delegate(selector, eventType, handler)
是否存在將使參數順序以下任何情況下,交換EVENTTYPE和選擇?
.delegate(eventType, selector, handler)
我有一個項目,無論我做什麼,我得先放EVENTTYPE。例如,這是在我的當前項目工作的唯一的事(這只是一個試驗,沒有真正的代碼!):
$('body').delegate('click', 'input', function (e) {
alert("Why is this the only way it will work for me in this project?");
});
根據文檔,這應該工作:
$('body').delegate('input', 'click', function (e) {
alert("This will never get hit");
});
我測試與小項目,它的工作就像文檔說它應該(這裏是一個例子js小提琴:http://jsfiddle.net/wmdYr/16/)
我使用jQuery 1.7.1從谷歌CDN,並嘗試了幾個舊版本的結果相同。
在某些情況下,Event是否需要成爲第一個參數?
檢出提供的jsfiddle,它使用'.delegate',但'target'和'event'參數是'.on'格式:http://jsfiddle.net/wmdYr/16/ – Jasper 2011-12-23 22:13:32
謝謝!我沒有切換到on(),這似乎在jsfiddle和我有一個小樣本項目中工作得很好。我把那個我遇到問題的大型項目分解成最小的部分,無論我做什麼,我都必須首先將事件放在第一位才能使其工作。我會考慮這樣做,除了我還使用backbone.js,它在做事件時使用記錄的順序。我的測試不在骨幹BTW之外。這真是奇怪,而且可能不可能在SO上進行調試,除非有一個已知的參數需要以不同順序的情況! – 2011-12-23 22:54:52