我目前正在升级我的应用程序以使用 jQuery 1.6.1(以前使用 1.4.4)并发现现在该.click()
事件也会自动触发一个.change()
事件。
我在这里创建了一个简单的例子:http: //jsfiddle.net/wDKPN/
请注意,如果您包含 1.4.4,则触发事件时该.change()
函数将不会.click()
触发。但是当切换到 1.6 时,触发时会触发该.change()
事件。.click()
两个问题:
这是一个错误吗? 似乎以编程方式触发
.click()
也不应该.blur()
触发其他事件(例如,自动触发and.focus()
来帮助“模仿”用户的点击似乎是错误的)。我绑定
change()
事件然后触发该元素的 a 和 event的正确click()
方法是什么?change()
我是否只是调用,并依赖于也会触发.click()
的事实?.change()
$('#myelement').change(function() { // do some stuff }); $('#myelement').click(); // both click and change will fire, yay!
在我的旧代码中,我使用这种模式在 ajax 调用后初始化一些复选框(以及它们的选中状态和值):
$('#myelement').change(function() {
// do some stuff including ajax work
}).click().change();
但是在 1.6.1 中,我的逻辑触发了两次(一次 for.click()
和一次 for .change()
)。我可以仅仅依靠删除.change()
触发器并希望 jQuery 在未来的版本中继续以这种方式运行吗?