2013-03-21 47 views
0

我知道这个主题已经在类似主题中讨论过,但是我找不到的解决方案可以帮助我理解我遇到的问题。JavaScript(jquery) - 单击事件中的范围问题

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

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上的click事件this.inuse内断点是不确定的! (这是我的问题),我的范围看起来很棒(萤火虫右侧面板),this.insue是错误的,因为它应该是 - 抱歉,我无法发布图像呢!

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

我试过一些工作人员喜欢把click事件定义放入另一个函数中,但它也不起作用。我尝试了不同的绑定方式,它也不起作用。

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

+0

地点'var thisinuse = this.inuse;'在点击和引用'thisinuse'之外的点击功能 – ashley 2013-03-21 15:37:17

回答

0

this.inuse可以分配给您的点击事件处理程序的变量,并使用处理程序中的变量。

2

这只是一个错字:

this.insue = false; 

变化insueinuse和财产将在那里:-)

除此之外,该变量thisinuse在这里相当多余。并改变条件为if(! this.inuse),而不是比较布尔值...

+0

:)感谢您的帮助,并抱歉打开无用的职位。 – Tigoes 2013-03-21 15:49:49

+0

是的,我知道,这个变量是我做的测试的一部分,所以我可以在下面放置一个断点。我没有注意到错字错误。 谢谢 – Tigoes 2013-03-21 15:50:35