单击复选框后没有收到复选框事件

时间:2016-03-08 12:26:46

标签: javascript jquery

我没有收到复选框的已检查状态。检查是动态创建的。 以下是代码:

'[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

1 个答案:

答案 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';
}

Twitter4J library