类选择器在追加后不起作用 (JQuery)
Class selector does not work after append (JQuery)
$(".quantidade").on("change blur", function() {
if ($(this).val().length) {
validateField("quantidade");
} else {
invalidateField("quantidade");
showGeneralMessage("É necessário preencher a quantidade!", "danger");
}
});
它工作得很好,直到添加一个带有附加的新项目:
$(".btn-add-produto").click(function() {
...
$("#listaProdutosPedido").append(content);
...
});
此"内容"包括具有相同类的输入。添加此 html 片段后,类选择器不适用于它。我想这是因为当文档准备就绪时,该段 HTML 不存在。如何"重新加载"javascript/文档,以便选择器即使在将来的引用中也能工作?我尝试使用 setInterval(( 进行检查,但它也不起作用......
您需要使用委托.on()
事件语法。在事件委派中,将事件附加到父元素。在内部,jQuery依赖于事件能力来冒泡DOM树。当找到指定类型的事件,其 e.target
属性与委托选择器匹配时,将触发您的事件。
若要适应此更改,请按如下所示修改代码:
$(document).on("change blur", ".quantidade", function() {
if ($(this).val().length) {
validateField("quantidade");
} else {
invalidateField("quantidade");
showGeneralMessage("É necessário preencher a quantidade!", "danger");
}
});
请注意,在如此高的级别进行委派是极其低效的。 应将包含新追加内容的最近父元素的document
更改为。在这种情况下,我用它来演示该过程是如何发生的,因为您的问题中没有指定 HTML DOM 树输出。在系统中实现此功能时,我鼓励您相应地更新document
选择器。
相关文章:
- 自动完成 jquery 不起作用
- 悬停时的Jquery不起作用
- 使用DateTimePicker插件的JQuery不起作用
- 无限滚动jquery不起作用
- 角度2触发器'单击'使用jquery不起作用
- 在 jQuery 不起作用的情况下迭代变量
- 切换下 jquery 不起作用
- 简单的jquery不起作用,并返回错误
- 等效于getElementbyName的jQuery不起作用
- Jquery不起作用,但我想一切都好
- 当按钮从ajax调用时,jquery不起作用
- 在jQuery不起作用的情况下阻止表单提交
- 为什么这个jquery不起作用
- 带有变量选择器的 Jquery 不起作用
- 简单的JavaScript/jQuery不起作用
- Wordpress jquery不起作用(计算系统)
- Django 模板内联 jQuery 不起作用
- 提示计算器 jquery 不起作用
- 追加 jquery 不起作用
- 正则表达式 jQuery 不起作用