在我的代码中,我在点击“+”/加号按钮时添加了一整套新元素。
但问题是,由于仅在点击期间附加新元素,因此元素不响应jquery事件。
Bellow是我场景中的一个事件:
$("#form input[type='text']").blur(validateField);
此事件适用于所有输入元素EXCEPT,用于在单击“+”/加号按钮时附加的一次。
我该如何解决?有人可以帮忙吗?
提前致谢。
答案 0 :(得分:5)
委托活动:
$(document.body).on('focusout',"#form input[type='text']",validateField);
由于onblur事件默认情况下不会冒泡,请改用onfocusout事件。
编辑:刚刚检查过,jquery现在通过映射onblur事件为onblur事件添加委托支持。
模糊事件在Internet Explorer中不会出现气泡。因此, 依赖于模糊事件的事件委托的脚本不会 跨浏览器一致地工作。但是,从版本1.4.2开始, jQuery通过将模糊映射到焦点来解决这个限制 事件委托方法中的事件,.live()和.delegate()。
答案 1 :(得分:2)
您需要使用on()
$("#form input[type='text']").on("blur",validateField);
答案 2 :(得分:2)
对这些新创建的元素使用.on()
或.live()
或.delegate()
方法。它会工作。
答案 3 :(得分:1)
尝试将事件委托给静态父级:
$("#form").on('blur', 'input[type="text"]', validateField);