出于某种原因,当我向各种输入添加一个类(在用户按下提交后)时,此函数不记录在这些输入中进行的按键。我必须做一些根本错误的事情,因为我已经尝试了$('incomplete_required').keyup(){}
以及下面的内容,因为看起来.on()
更现代......
$(document).ready(function(){
$('.incomplete_required').on("keyup", function(){
console.log('keyed');
});
});
我在这里做错了什么?
谢谢
答案 0 :(得分:26)
如果要动态更改dom中的元素 - 最好将事件委托给dom中的现有父级
$(document).ready(function(){
$('body').on("keyup",'.incomplete_required', function(){
console.log('keyed');
});
});
显然将body
替换为dom ready上最近的父元素
通过委托 - 事件将冒泡到“父”元素 - 这是处理事件的地方
答案 1 :(得分:2)
在提交之前看到这个有效我认为你正在丢失事件绑定,因为元素被重新渲染但是文档就绪事件没有再次触发。
此处可能需要动态绑定解决方案:
$(document).ready(function(){
$(document).on('keyup', '.incomplete_required', function(){
console.log('keyed');
});
});
请注意,document
非常远,所以最接近的静态元素会更好。
答案 2 :(得分:0)
改为绑定到“按键”事件。