2014-07-16 41 views
0

我的腳本出了什麼問題。在點擊功能後它不會改變變量d。我也嘗試過window.d,但仍然是一樣的。更改document.ready中的變量javascript

var d = undefined; 
$(document).ready(function(){ 

    if ($(window).scrollTop() !== 460) { 
     d = $(window).scrollTop(); 
    } else { 
     d = 459; 
    } 

    if (d < 459) { 

     $('#drop1, #drop2, #drop3').on('click',function(){ 

      $.scrollTo(460, 900, { easing: 'easeOutExpo' }); 
      $(document).scroll(); 
      d = 500; 
     });  

    } else { 
     console.log(window.d); 
    } 
}); 
+1

您可以*請*使用[合理的縮進](http://jsbeautifier.org/)? – Bergi

+5

你怎麼知道它不會改變它?您似乎沒有在點擊發生後的任何位置進行測試。我想你可能會誤解事件或事件驅動的代碼是如何工作的。 –

+0

只有當d小於459時,onclick函數才能正常工作。如果我在函數中設置d爲500,那麼id似乎不起作用。我也看到它在console.log – parat10

回答

0

基礎上OP的評論「的onclick函數應該只有當d比459更小的工作」,我不知道這是什麼,他要尋找的:

var d = undefined; 
$(document).ready(function(){ 

    if ($(window).scrollTop() !== 460) { 
     d = $(window).scrollTop(); 
    } else { 
     d = 459; 
    } 

    $('#drop1, #drop2, #drop3').on('click',function() { 
     // move d<459 test inside click event 
     // the click event will always be fired, but the 
     // scroll effect will only occur if d<459 
     if (d < 459) { 
      $.scrollTo(460, 900, { easing: 'easeOutExpo' }); 
      $(document).scroll(); 
      d = 500; 
     }; 
     console.log(d); // always tell me d for debugging 
    }}; 
}); 

當然,點擊事件可只觸發一次滾動效果;然後它設置d = 500,除非再次將d重新設置在其他地方,否則(d < 459)將永遠不會變爲真。