簡體   English   中英

如何將while循環中生成的值存儲到變量中以供以后在JQuery中使用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM