我有一个包含下拉列表的页面,当用户从列表中选择一个选项时,会触发一个ajax调用并创建一系列复选框.有些是经过检查,有些则未经过检查.我需要记录是否对复选框进行了任何更改,即选中/取消选中.我尝试使用以下内容,但没有任何反应.
我正在使用jQuery版本1.7.1,顺便说一句.
$("input:checkbox").change(function(){
//some stuff happens
});
Run Code Online (Sandbox Code Playgroud)
我在那里有一个警报,但什么也没发生.所以我试着将它包装成一个$(document).ready(...但是没有.所以我的猜测是,由于在DOM准备就绪时尚未创建复选框,因此没有标记将该操作附加到.
所以现在我不知所措.我不知道,没有把onChange="someFunction()"成
.append("<input type='checkbox' id='" + theData.DATA + "' value='" + theData.DATA + "'>" + tempName + "<br />");
Run Code Online (Sandbox Code Playgroud)
这实际上是创建复选框.
有什么想法吗?
你是对的,如果你正在使用jQuery 1.7 ..使用.on如下面的语法,
$(<closest_checkbox_container>).on('change', 'input:checkbox', function(){
//some stuff happens
});
Run Code Online (Sandbox Code Playgroud)
如果您使用的是旧版本,请使用.delegate,
$(<closest_checkbox_container>).delegate('input:checkbox', 'change', function(){
//some stuff happens
});
Run Code Online (Sandbox Code Playgroud)
注意:<closest_checkbox_container> DOM准备就绪时,最接近的复选框容器在哪里.
调用上述方法delegated events.参考(阅读委托活动下的部分)
或者,最好$("input:checkbox").change(function(){在添加完这些复选框后编写.但是,假设所有复选框仅添加一次,则效果更好.
| 归档时间: |
|
| 查看次数: |
2936 次 |
| 最近记录: |