0

我知道这个主题已经在类似的主题中讨论过,但是我能找到的解决方案都不能帮助我理解我遇到的问题。

这是我的简化类,通常是我定义它们。

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 应该是错误的- 抱歉我还不能发布图片!

我会很感激有人可能会帮助识别这种非常奇怪的行为。

我尝试了一些工作人员,例如将单击事件定义放在另一个函数中,但它也不起作用。我尝试了不同的绑定方式,但它也不起作用。

但是,下面的示例正在处理我制作的许多其他类。我可以从事件、效果访问类范围。

4

2 回答 2

2

这只是一个错字:

  this.insue = false;

更改insueinuse,属性将在那里:-)

除此之外,这里的变量thisinuse是多余的。并将条件更改为if(! this.inuse)而不是与布尔值进行比较...</p>

于 2013-03-21T15:39:10.627 回答
0

this.inuse可以分配给单击事件处理程序外部的变量,并在处理程序内部使用该变量。

于 2013-03-21T15:38:12.407 回答