只是一个简单的问题。
我正在使用
console.log(jQuery(event.target).is(":checked"));
并且每次都返回 false。
如果我执行 console.log(jQuery(event.target))
则会打印出输入框,所以我知道 event.target 是正确的。
我不能在这里使用 this
因为 jQuery 事件绑定(bind)到父 div。
有什么想法为什么这行不通吗?看起来很简单。
编辑########################################## 其余代码:
jQuery(".core-create-install-pkg-parent").live("click", function(event){
var cls = jQuery(event.target).attr("type");
if(cls != "checkbox"){
event.stopPropagation();
jQuery(".core-create-install-pkg-child:first", this).toggle();
}else{
console.log(event.target);
if(jQuery(event.target).is(":checked")){
console.log("it's checked");
jQuery("input[type=checkbox]", this).removeAttr('checked');
}else{
console.log("not checked");
jQuery("input[type=checkbox]", this).attr("checked", true);
}
}
});
html 看起来像:
<div class="core-create-install-pkg-parent">
<div class="core-create-install-pkg-title">
<input type="checkbox" value="" checked>
plugins
</div>
</div>
最佳答案
不需要 jQuery:
event.target.checked
如果 event.target
是一个复选框,应该可以工作。但是,您的代码应该也可以工作...如果不能,则该元素不是复选框或其他错误。
关于jQuery event.target 且为 (":checked")不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7299513/