![](/img/trans.png)
[英]How to store the value from a form in a variable for later use in a function?
[英]How to store a value generated in a while loop to a variable for later use in JQuery
我有以下由“ mousemove”事件執行的代碼:
$("div").on("mousemove", function( event ) {
var k = 0;
var x = 0;
while(k<y){
k++;
x = k;
}
}
問題是,一旦循環已經運行並停止,並且鼠標從當前位置移動了一個像素,並且碰巧沒有滿足該條件,我就將k++
的值放開,即var x = k;
相反,將var x
重置為0(零),就像在循環之前一樣。 我需要保留var x = k++
的值,以供以后使用,即使在光標移動后也是如此。
請指教。 謝謝。
存儲此類值的最佳位置是元素的data屬性。 假設您的頁面上有幾個div
元素,當前設置要求每個div
都有一個唯一變量:
$('div').on('mousemove', function( e ) {
var k = $(this).data('k') || 0;
//......
$(this).data('k', +k+1);
console.log( $(this).data('k') );
});
$('div').on('mousemove', function( e ) { var k = $(this).data('k') || 0; //...... $(this).data('k', +k+1); console.log( $(this).data('k'), this ); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <div class="div1">DIV 1</div> <div class="div2">DIV 2</div> <div class="div3">DIV 3</div>
使x
全局變量。
var x = 0;
$("div").on("mousemove", function( event ) {
k = 0;
while(k<y){
k++;
var x = k;
}
}
只需將變量存儲在全局范圍內的循環外,並在循環退出后保持狀態。
現在,每次觸發“ mousemove”時,事件處理程序都會將k和x設置為0。 在事件處理程序外部聲明x
以保存x的值。
var x = 0;
$('div').on('mousemove', function(event){
// the rest of your code goes here
}
只需確保在循環外分配變量xa值,以便在循環退出時可以保留x的新值。
注意:如下所示,通過刪除x之前的“ var”,確保循環內的var x是全局x。 這樣,x的值將可在循環以及包裝循環的任何函數之外使用。
var x = 0;
$("div").on("mousemove", function( event ) {
var k = 0;
while (k<y){
k++;
x = k; //Note that it's "x=k" and not "var x = k". This makes x global
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.