单击时出现未定义的Javascript错误
不确定我在尝试单击按钮时为什么会出现此错误 未捕获的TypeError:无法读取未定义的属性“on” JSFiddle: 谢谢单击时出现未定义的Javascript错误,javascript,Javascript,不确定我在尝试单击按钮时为什么会出现此错误 未捕获的TypeError:无法读取未定义的属性“on” JSFiddle: 谢谢 $(document).ready(function(){ (function() { var itemTracker = { // init init: function() { this.bindEvents(); }, // cacheDom cac
$(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他在做的事情和你在做的完全不同。而且他的代码和你的不匹配。