jQuery 每个函数抛出错误:未捕获的类型错误:无法读取属性
2016-10-27
461
我正在为我的项目创建一个自定义 step.js 应用程序。我在对象范围上遇到错误。以下是我的代码
var STEPPED = {
el: {
stepContentDiv: $('#stepContent'),
stepNavDiv: $('#stepNav'),
stepNavLi: $('#stepNav li'),
stepNavAnchor: $('#stepNav li a'),
stepNavDone: $('#stepNav li a'),
stepNavActive: $('#stepNav li a')
},
doActive: function(){
this.el.stepNavDone.on('click', function(){
this.el.stepNavLi.each(function(){
alert();
});
});
},
init: function(){
this.doActive();
}
}
STEPPED.init();
运行此代码时出现错误
this.el.stepNavLi.each(function(){
alert();
});
Uncaught TypeError: Cannot read property 'stepNavLi' of undefined
有人能帮我看看这里的问题是什么吗?提前谢谢了
1个回答
在
click
事件处理程序函数中,
this
指的是被点击的元素,而不是
STEPPED
对象。如果您想在点击处理程序中保留对该对象的引用,则需要将对该对象的引用缓存在变量中。试试这个:
doActive: function() {
var _stepped = this;
_stepped.el.stepNavDone.on('click', function(){
_stepped.el.stepNavLi.each(function(){
alert();
});
});
},
Rory McCrossan
2016-10-27