我知道这个主题已经在类似主题中讨论过,但我找不到的解决方案都无法帮助我理解我的问题。
这是我的简化课程,通常是我定义它们。
BottomNav = function() {
this.init();
}
$.extend(BottomNav.prototype, {
init: function(){
this.insue = false;
$(".up").click($.proxy(function () {
var thisinuse = this.inuse;
if(this.inuse===false) {
this.inuse = true;
this.moveSlider('up');
}
},this));
},
moveSlider: function(d){
//some instructions
alert('move slider');
}
});
$(document).ready(function() {
new BottomNav();
});
在单击事件内的断点处的FireBug中,this.inuse未定义! (这是我的问题),我的范围看起来很好看(萤火虫的右侧面板),this.insue是假的,因为它应该 - 抱歉我还不能发布图像!
我很感激有人可能会帮助识别这种非常奇怪的行为。
我尝试了一些工作人员,比如将click事件定义放在另一个函数中,但它也不起作用。我尝试了不同的绑定方式,它也不起作用。
但是下面的例子正在处理我制作的其他一些类。我可以从事件,效果中访问类范围。
答案 0 :(得分:2)
这只是一个错字:
this.insue = false;
将insue
更改为inuse
,该属性将在那里: - )
除此之外,变量thisinuse
在这里是多余的。并将条件更改为if(! this.inuse)
,而不是与布尔值进行比较......
答案 1 :(得分:0)
this.inuse
分配给click事件处理程序的变量,并使用处理程序中的变量。