我有一个只能运行一次的简单脚本。如果我单击表格行中的任何位置,我的脚本将选中一个复选框。但是,如果我在行内点击第二个,第三个等时间,那么它就不再起作用了。为什么?我现在使用的是jquery 1.9.1。当我使用jquery 1.8和live()
而不是on()
时,我的脚本先前有效。
HTML:
<tr class="row">
<td><input type="checkbox"></td>
</tr>
jquery的:
$(document).ready(function(){
$("body").on("click",".row",function(){
var loc = $(this).find('input');
var ischecked = loc.attr("checked");
if(ischecked) {
loc.attr("checked", false);
} else {
loc.attr("checked", true);
}
});
});
答案 0 :(得分:1)
您需要将prop替换为prop,如下所示
$(document).ready(function(){
$("body").on("click",".row",function(){
var loc = $(this).find('input');
var ischecked = loc.attr("checked");
if(ischecked) {
loc.prop("checked", false);
} else {
loc.prop("checked", true);
}
});
});
答案 1 :(得分:0)
如果checked
中存在<input />
属性,请不要关注其值,就会检查它。所以请替换以下内容:
loc.attr("checked", false);
使用:
loc.prop("checked", false);
或者,您可以通过以下方式在一行代码中执行此操作:
loc.prop("checked", !loc.prop("checked"));