为什么jquery';只有一次工作吗?
我有一个简单的脚本,只工作一次。如果单击表行中的任意位置,脚本将选中一个复选框。但是,如果我第二次、第三次等在行内单击,则它不再工作。为什么?我现在使用的是jQuery1.9.1。我的脚本以前在使用jQuery1.8时使用为什么jquery';只有一次工作吗?,jquery,jquery-on,Jquery,Jquery On,我有一个简单的脚本,只工作一次。如果单击表行中的任意位置,脚本将选中一个复选框。但是,如果我第二次、第三次等在行内单击,则它不再工作。为什么?我现在使用的是jQuery1.9.1。我的脚本以前在使用jQuery1.8时使用live(),而不是on() HTML: 当选中的属性位于中时,不管它的值如何,它都会被选中。因此,请替换以下内容: loc.attr("checked", false); 与: 或者,您可以通过以下方式在一行代码中执行此操作: loc.prop("checked", !lo
live()
,而不是on()
HTML:
当
选中的属性位于
中时,不管它的值如何,它都会被选中。因此,请替换以下内容:
loc.attr("checked", false);
与:
或者,您可以通过以下方式在一行代码中执行此操作:
loc.prop("checked", !loc.prop("checked"));
您需要用道具替换attr,如下所示
$(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);
}
});
});
我认为您应该使用loc.prop(“checked”)
,而不是.attr()
。将“checked”attr设置为true或false与是否选中复选框无关。只要属性存在,它就会被选中。您应该添加和删除属性,而不是将其设置为true或false。正如@Barmar所说,使用prop。请参阅此SO问题:如果(ischecked==“checked”),请尝试使用此条件
loc.prop("checked", false);
loc.prop("checked", !loc.prop("checked"));
$(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);
}
});
});