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

标签 javascript

不知道为什么当我尝试单击该按钮时会收到此错误。

Uncaught TypeError: Cannot read property 'on' of undefined

JSFiddle:https://jsfiddle.net/mm5crd3b/

谢谢

$(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 是一个对象,其中包含 submitAdd 作为属性。

此外,

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

这部分代码不会按预期工作。您可以将其编写为 getter 来解决您的问题。

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

关于javascript - 单击时出现未定义的 Javascript 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42746252/

相关文章:

JavaScript - 从 require 实例化

javascript - 确定单击元素时调用的 Javascript 函数

javascript - 如何在控制台中获取特定的 Controller 范围列表 - angularjs?

javascript - 交换 2 个 html 表格元素

javascript - .setValue() 对 Google Sheets 脚本不一致

javascript - 为什么在 JavaScript 中实现模块模式时要进行自执行

javascript - 单独文档中的事件处理程序

javascript - 无法在 'putImageData' : parameter 1 is not of type 'CanvasRenderingContext2D' 上执行 'ImageData'

javascript - Polymer 1.0 使用 ExcludeLocalNames 跳过节点

javascript - 使用运行 php 代码的 ajax 更改按钮