2013-11-14 31 views
2

我嘗試在點擊時創建一個變量,並在另一個onclick動作上使用它。 但是,當第二個onclick嘗試使用它時,似乎該變量不存在。jQuery上兩個onclick動作的變量

$("#search").click(function() { 
    var myVariable = $(document).scrollTop(); 
}); 

$("#gachette").click(function() { 
    $('html, body').animate({scrollTop:myVariable}, 10); 
}); 

你知道爲什麼它不起作用嗎?

回答

3

使您的變量全局。

$("#search").click(function() { 
    myVariable = $(document).scrollTop(); //global variable remove var from starting 
}); 

var使您的變量侷限於範圍。

或聲明你的變量外

var myVariable; 
$("#search").click(function() { 
    myVariable = $(document).scrollTop(); 
}); 

閱讀What is the scope of variables in JavaScript?Variable Scope (JavaScript)

+2

爲什麼下跌投票? –

+1

^^是的,這將工作:s有一個+1來平衡愚蠢。 – Archer

+0

謝謝,這就是我所尋找的,我不能在外面聲明變量,因爲當用戶點擊#搜索時我需要滾動位置。謝謝! – Damien

1

這是所有關於範圍

var myVariable; // DEFINE OUTSIDE! 

$("#search").click(function() { 
    myVariable = $(document).scrollTop(); // DON'T USE var HERE 
}); 

$("#gachette").click(function() { 
    $('html, body').animate({scrollTop:myVariable}, 10); 
}); 
0

而且沒有全局:

$("#search").on('click', function() { 
    $("#gachette").data('scrollTop', $(window).scrollTop()); 
}); 

$("#gachette").on('click', function() { 
    $('html, body').animate({scrollTop: $(this).data('scrollTop')}, 10); 
});