我遇到了添加自定义事件的代码,以检测源自键盘或鼠标事件的输入文本更改:
http://www.zurb.com/playground/jquery-text-change-custom-event
代码有点旧,文档说使用bind()
附加自定义事件,例如:
$('#exhibita').bind('hastext', function () {
$('#exhibitaButton').removeClass('disabled').attr('disabled', false);
});
从jQuery 1.7开始,.on()方法是将事件处理程序附加到文档的首选方法。对于早期版本,.bind()方法用于将事件处理程序直接附加到元素。
我以为我可以将代码重写为:
$(document).on('hastext', '#exhibita', function () {
$('#exhibitaButton').removeClass('disabled').attr('disabled', false);
});
但永远不会触发事件处理程序。
问题
on()
?on()
?如果是这样,必须改变什么?bind()
是未来版本的jQuery中的删除候选者?我没有在文档中看到折旧警告,但我知道{1.9}已删除了live()
和die()
... 答案 0 :(得分:1)
您在此处使用on
的方式是创建均匀委派。这基本上等同于旧的jquery live
。
此自定义事件可能无法正常冒泡。试试这个:
$('#exhibita').on('hastext', function () {
如果绑定有效,这将有效。