簡體   English   中英

jQuery函數不適用於兩個元素

[英]jQuery Function don't work with two elements

我的jQuery腳本沒有按升序返回數字。

jQuery的

$(document).ready(function() {
  $.xpto = function(dom, speed) {
    i = 0;
    interval = setInterval(function() {
      i++;
      $(dom).append(i + '<br>');
    }, speed);
  };

  $.xpto('#a', 1000);
  $.xpto('#b', 2000);
});

而我的HTML:

<div id="a" style="background:blue;float:left;"></div>
<div id="b" style="background:red;float:left;"></div>

謝謝!

i = 0interval之前,您缺少var關鍵字。 這會使函數$.xpto所有實例共享這些變量。 此外,每次調用$.xpto時, i變量都會重置為零。

根據您函數的邏輯,這應該發生:

a 1
b 2
a 3
a 4
a 5
b 6
a 7
a 8
b 9
...

如果這與預期不符,請提及您的意願,我將進行介紹。

試試這個: -http : //jsfiddle.net/FloydPink/hWYG5/

$(document).ready(function() {
    $.xpto = function(dom, speed) {
        var i = 0;
        interval = setInterval(function() {
            i++;
            $(dom).append(i + '<br>');
        }, speed);
    };

    $.xpto('#a', 1000);
    $.xpto('#b', 2000);
});

如果沒有var關鍵字,變量i不會在閉包中顯式聲明,而是在$.xpto兩次調用中都被重用

如果要為每一行分配自己的計數變量,則必須在定義i之前使用var關鍵字。

http://jsfiddle.net/pF2ef/2/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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