单击复选框后未收到复选框事件

Not getting the check box event after click on checkbox

本文关键字:复选框 事件 单击      更新时间:2023-09-26

我没有获得复选框的选中状态。检查是动态创建的。下面是代码:

'[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一样到来。

使用 prop() 而不是 attr()

►如果您使用的是 jQuery 1.6 或更高版本,请使用 prop() 而不是 attr()

var checkedValue = this.element.find("#"+taskCheckBoxId).prop("checked");

当你使用 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++;
  }
})

演示小提琴