2014-10-03 95 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