脚本不适用于加载的元素
Script does not working for loaded element
我创建了一个带有复选框+包装的表单,即:
<form>
<div class="input-wrapper">
<input type="checkbox" name="item[]" value="1">
</dv>
<div class="input-wrapper">
<input type="checkbox" name="item[]" value="2">
</div>
<div class="input-wrapper">
<input type="checkbox" name="item[]" value="3">
</div>
</form>
这个切换检查正在工作:
$(".input-wrapper").on("click", function () {
var $checkbox = $(this).find(':checkbox');
$checkbox.prop('checked', !$checkbox[0].checked);
});
但当我从ajax加载其他复选框时,即:
$.post(
'/my/url',
{...my data...},
function(data){
if(data != 'failed'){
//return new checkbox + wrapper too and append it at the end of the form
$('form').append(data);
}
}
);
Toggle检查不仅仅适用于加载/附加的元素。
如何解决此问题如何正确创建一个影响所有元素的脚本,即使是加载的元素
谢谢。
绑定click监听器的方式将绑定到当前DOM中的所有.input-wrapper
元素。
您可以为单击单独绑定新对象,也可以将侦听器委托给将留在DOM(例如$(document).on("click", ".input-wrapper", function (){//Do Stuff});
)中的父对象
尝试这个轻微的修改:
$("form").on("click", ".input-wrapper", function () {
var $checkbox = $(this).find(':checkbox');
$checkbox.prop('checked', !$checkbox[0].checked);
});
让我知道进展如何。
相关文章:
- Material Design Lite所有元素加载JS回调
- Chrome扩展:等待元素加载(async js)
- 从外部页面上的元素加载属性
- 聚合物元素加载非常缓慢
- 如何禁用 HTML 锚元素加载
- 尝试将一个元素加载到另一个元素时出现意外字符串
- 用kinetijs中的所有元素加载舞台
- 在特定元素加载时调用函数
- 如何在HTML元素加载到页面之前隐藏它们
- 是否可以延迟用户访问的第一个页面上的元素加载
- Facebook喜欢按钮不显示隐藏元素加载后
- 使用SELECT元素加载图像
- 如何使Javascript只在所有元素加载后才加载
- 在另一个元素加载后隐藏一个元素?AJAX
- 谷歌翻译元素-加载后页面准备好了
- 继续尝试函数,直到所需的DOM元素加载
- 在元素加载时调用javascript函数
- 如何检测或注册自定义元素加载并准备与之交互的回调
- HTML元素加载,即使他们没有附加到DOM?那么主干视图呢?
- 等待所有元素加载完成后执行操作