我没有收到复选框的已检查状态。检查是动态创建的。 以下是代码:
'[id^=taskcheckbox_] click' : function(el){
var taskObj={};
var taskCheckBoxId = el.attr("id");
var indexOfTask = taskCheckBoxId.split("_")[2];
var checkedValue = this.element.find("#"+taskCheckBoxId).attr("checked");
var task_id = taskCheckBoxId.split("_")[1];
if(checkedValue == "checked" && checkedValue != undefined){
this.count++;
}}
选中复选框后,控件不会进入if
条件。
checkedValue
的值始终为undefined
。
答案 0 :(得分:3)
使用prop()而不是attr()
►如果您使用的是jQuery 1.6或更高版本,请使用prop()而不是attr()
prop()
当您使用$(document).delegate("[id^=taskcheckbox_]", "click", function(el) {
//[id^=taskcheckbox_] click' : function(el){
var taskObj = {};
var taskCheckBoxId = el.currentTarget.id;
var indexOfTask = taskCheckBoxId.split("_")[2];
var checkedValue = $(el.currentTarget).is(":checked");
var task_id = taskCheckBoxId.split("_")[1];
if (checkedValue) {
console.log('checked')
//this.count++;
}
})
时,返回的值将为布尔值
function getColor(status) {
return status == "proposed" ? '#800888' :
status == "permitted" ? '#969696' :
status == "operational" ? '#081d58' :
status == "development" ? '#006837' :
status == "denied" ? '#fed976' :
'#252525';
}