我正在为我的项目创建自定义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();
});
未捕获的TypeError:无法读取属性' stepNavLi'未定义的
有人请求帮我解决这个问题吗?提前致谢
答案 0 :(得分:1)
在click
事件处理函数中,this
指的是被点击的元素,而不是STEPPED
对象。如果要在单击处理程序中保留对该对象的引用,则需要在变量中缓存对象的引用。试试这个:
doActive: function() {
var _stepped = this;
_stepped.el.stepNavDone.on('click', function(){
_stepped.el.stepNavLi.each(function(){
alert();
});
});
},