Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
单击时出现未定义的Javascript错误_Javascript - Fatal编程技术网

单击时出现未定义的Javascript错误

单击时出现未定义的Javascript错误,javascript,Javascript,不确定我在尝试单击按钮时为什么会出现此错误 未捕获的TypeError:无法读取未定义的属性“on” JSFiddle: 谢谢 $(document).ready(function(){ (function() { var itemTracker = { // init init: function() { this.bindEvents(); }, // cacheDom cac

不确定我在尝试单击按钮时为什么会出现此错误

未捕获的TypeError:无法读取未定义的属性“on”

JSFiddle:

谢谢

$(document).ready(function(){

(function() {
    var itemTracker = {
        // init
        init: function() {
            this.bindEvents();
        },

        // cacheDom
        cacheDom: {
            inputAdd: $('#inputAdd'),
            submitAdd: $('#submitItem')
        },

        // item
        item: {
            text: this.inputAdd.value,
        },

        // Bind Events
        bindEvents: function() {
            this.submitAdd.on("click", addItem);
        },

        // Add item
        addItem: function() {
            console.log("test");
        }

        // Remove item

        // Edit Item

        // Complete Item

        // Uncomplete Item
    };

    itemTracker.init();

})();

});

您以错误的方式访问该属性

bindEvents: function() {
  this.cacheDom.submitAdd.on("click", addItem);
},
当看到您的代码时,我可以告诉您,
cacheDom
是一个将
submitad
作为属性保存在其中的对象

另外,

item: {
 text: this.inputAdd.value,
},
这部分代码无法按预期工作。你可以把它写下来作为解决问题的动力

get itemText() {
 return this.cacheDom.inputAdd.value,
},

您以错误的方式访问该属性

bindEvents: function() {
  this.cacheDom.submitAdd.on("click", addItem);
},
当看到您的代码时,我可以告诉您,
cacheDom
是一个将
submitad
作为属性保存在其中的对象

另外,

item: {
 text: this.inputAdd.value,
},
这部分代码无法按预期工作。你可以把它写下来作为解决问题的动力

get itemText() {
 return this.cacheDom.inputAdd.value,
},

bindEvents方法有一些小的更改

 bindEvents: function() {
        this.cacheDom["submitAdd"].on("click", this.addItem);
      },

submitad是cacheDom对象中的一个键,因此您可以使用cacheDom而不是直接访问它们,addItem是对象实例的一部分,因此您可以使用它访问它们。如果更改此选项,错误将消失

对bindEvents方法有一些小的更改

 bindEvents: function() {
        this.cacheDom["submitAdd"].on("click", this.addItem);
      },

submitad是cacheDom对象中的一个键,因此您可以使用cacheDom而不是直接访问它们,addItem是对象实例的一部分,因此您可以使用它访问它们。如果更改此选项,错误将消失

它与您的代码无关。这是该版本的
jQuery
/
Sizzle
中的一个bug。在你点击按钮之前,这个bug已经存在了

异常源是
Sizzle
试图针对默认文档进行初始化

但您的代码也错了:) 我猜您希望这样(这里是click的处理程序)


它与您的代码无关。这是该版本的
jQuery
/
Sizzle
中的一个bug。在你点击按钮之前,这个bug已经存在了

异常源是
Sizzle
试图针对默认文档进行初始化

但您的代码也错了:) 我猜您希望这样(这里是click的处理程序)


您好,谢谢您的回复,我之所以使用“this.inputAdd”而不是“cacheDom.inputAdd”,是因为在这段视频中,他似乎就是这么做的?我是不是误解了他在做什么?@JoeConsterdine他在做的事情和你在做的完全不同。另外,他的代码与你的不匹配。嗨,谢谢你的回复,我之所以使用“this.inputAdd”而不是“cacheDom.inputAdd”,是因为在这段视频中,他似乎就是这么做的?我是不是误解了他在做什么?@JoeConsterdine他在做的事情和你在做的完全不同。而且他的代码和你的不匹配。