我遇到了添加自定义事件以检测源自键盘或鼠标事件的输入文本更改的代码:
http://www.zurb.com/playground/jquery-text-change-custom-event
代码有点旧,文档说用于bind()
附加自定义事件,例如:
$('#exhibita').bind('hastext', function () {
$('#exhibitaButton').removeClass('disabled').attr('disabled', false);
});
jQuery文档状态
从 jQuery 1.7 开始,.on() 方法是将事件处理程序附加到文档的首选方法。对于早期版本,.bind() 方法用于将事件处理程序直接附加到元素。
我以为我可以将代码重写为:
$(document).on('hastext', '#exhibita', function () {
$('#exhibitaButton').removeClass('disabled').attr('disabled', false);
});
但永远不会触发事件处理程序。
问题
- 我在使用 时犯了错误
on()
吗? - 是否必须重写提供自定义事件的代码以支持
on()
?如果是这样,必须改变什么? - 被
bind()
记录为在未来版本的 jQuery 中删除的候选者?我没有在文档中看到折旧警告,但我知道live()
并die()
已从 1.9 中删除... - 是否有一种面向未来的方式来使用这些自定义事件而无需重写代码?