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