我正在为我的项目创建一个定制的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”
有人能帮我吗?这里有什么问题?提前感谢
发布于 2016-10-27 12:44:07
在click事件处理程序函数中,this引用的是单击的元素,而不是STEPPED对象。如果要在单击处理程序中保留对对象的引用,则需要将对对象的引用缓存在变量中。试试这个:
doActive: function() {
var _stepped = this;
_stepped.el.stepNavDone.on('click', function(){
_stepped.el.stepNavLi.each(function(){
alert();
});
});
},https://stackoverflow.com/questions/40284829
复制相似问题