Javascript 事件上的jQuery未读取分配给此的变量

Javascript 事件上的jQuery未读取分配给此的变量,javascript,jquery,Javascript,Jquery,问题 我有一个动态创建的复选框输入元素。我已经为元素指定了一个isSelected布尔变量。我还为元素的各个变量分配了一个选择和取消选择函数 这三个变量按预期工作,除非我尝试从onclick函数{}事件调用它。在这种情况下,它们都是未定义的,我不知道为什么 代码片段-jQuery 我缺少什么?在事件处理程序中,这不是jQuery。它是一个本地DOM元素。此外,您不能只将.isSelected添加到jquery实例中……它将只应用于该实例。您可能希望使用数据,如input.data'isSelec

问题

我有一个动态创建的复选框输入元素。我已经为元素指定了一个isSelected布尔变量。我还为元素的各个变量分配了一个选择和取消选择函数

这三个变量按预期工作,除非我尝试从onclick函数{}事件调用它。在这种情况下,它们都是未定义的,我不知道为什么

代码片段-jQuery


我缺少什么?

在事件处理程序中,这不是jQuery。它是一个本地DOM元素。此外,您不能只将.isSelected添加到jquery实例中……它将只应用于该实例。您可能希望使用数据,如input.data'isSelected',false。在事件处理程序中,需要使用$this.data'isSelected',false@tyler_sells你能同时添加html/css吗?@TylerSells任何你想附加到元素的东西,以便你以后可以把它取回变量或函数,都应该放在.data中。有关更多详细信息,请查看。但是,您可以侦听本机事件以查看复选框上的更改。听起来真的有点严重的过度思考。如果需要使用jQuery自定义事件来触发所需的任何事件,但选中的只有2种可能的状态。。。在更改事件处理程序中更改多个复选框的选中状态非常简单。例如,在“全选”复选框中,可以切换所有其他操作,如$'.othercheckbox'.prop'checked',this.checked
var input = $("<input type='checkbox' id='" + i + "_" + j + $(this).html() + "' />");
li.append(input); //li is a variable created elsewhere
input.isSelected = false;
input.select = function () {
    this.isSelected = true;
    console.log(this.isSelected); //true
}
input.deselect = function () {
    this.isSelected = false;
    console.log(this.isSelected); //false
}
input.select(); //logs true
input.on("click", function () {
    console.log(this.isSelected); //undefined
    if(this.isSelected){
        this.deselect(); //does not get called
    }else{
        this.select(); //does not get called
    }
})