2014-10-03 98 views
-1

我使用JavaScript滑动条的修改版本从tutorial by Thoriq Firdaus的JavaScript:使用CONSOLE.LOG

我试图打印变量value使用console.log(value)我的Firefox控制台时“的ReferenceError值没有定义”错误但我不断收到以下错误

ReferenceError: value is not defined

console.log(value)

有谁能告诉我哪里出了问题?

$(function() { 
    var initX=0,minX=50,width=400;   
    var slider = $('#slider'), 
     tooltip = $('.tooltip'); 

    slider.slider({ 
     //Config 
     min: -50, 
     max: +50, 
     value: 0, 

     start: function (event, ui) { 
      tooltip.fadeIn('fast'); 
     }, 

     //Slider Event 
     slide: function (event, ui) { 
      var value = slider.slider('value'), 
       volume = $('.volume'); 

      tooltip.css('left', initX+(value*width)/100).text(ui.value); 
     }, 

     stop: function (event, ui) { 
     }, 
    }); 
    initX=slider.slider("value"); 

    console.log(value) 

    var txt=initX; 
    initX+=(minX*width)/100; 
tooltip.css('left',initX).text(txt); 
}); 
+3

值在该范围内不存在(slider.slider以外) – smerny 2014-10-03 15:32:54

+1

您没有这样的变量。 – SLaks 2014-10-03 15:33:14

回答

1

正如@snemy和@SLaks所解释的,变量'value'只在包含其声明的函数调用的作用域中可见。

所以,澄清,这将工作:

//Slider Event 
    slide: function (event, ui) { 
     var value = slider.slider('value'), 
      volume = $('.volume'); 

     console.log(value); 

     tooltip.css('left', initX+(value*width)/100).text(ui.value); 
    } 

但不是你尝试过什么,因为变量的值是不可见的,你已经把你的console.log声明;并且slide函数可能尚未被调用。

如果您不熟悉该语言,您可以阅读更多关于范围here的内容。

+0

谢谢,并提供参考,是的,我对JS完全陌生。 – Deepend 2014-10-03 15:50:09

+0

@Deepend然后我强烈建议你在复制粘贴过多的jQuery代码之前花一些时间在MDN上掌握语言。玩的开心 ! – phtrivier 2014-10-03 15:56:31