为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