0

私はjavascriptでこの関数を作成しようとしていますが、うまくいきません.jsには少し慣れていないので、ここで本当に間違っていることはありません.

コード:

<div id="test">TESTING</div>

JS:

function animateDiv(div){

var text = $('#' + div + '"').text();

var doAnimate = function() {
    $('span').each(function() {
        var that = $(this);
        setTimeout(function() {
            that.animate({ fontSize: "90px" }, 1500 )
                .animate({ fontSize: "50px" }, 1500 );
        },that.index()*100);
    });
}

$('#' + div + "'").html('');

for(i=0; i<text.length; i++) {
  $('#' + div + "'").append('<span>'+text[i]+'</span>');
    if(i==text.length-1) doAnimate();
  }

}
  // using the function here to run animation on div test from html  
 animateDiv(test);

jsfiddle はこちら: http://jsfiddle.net/aA8Un/3/

4

4 に答える 4

1

次のように一重/二重引用符を使用して関数を呼び出す必要があります

animateDiv("test");

それ以外の

animateDiv(test);

そして、どこからでもコードから '"' を削除します

$('#' + div + '"')だから作る$('#' + div)

ワーキングデモ

于 2012-07-24T13:01:57.893 に答える
1

これで動作します

function animateDiv(div){

var text = $('#' + div.id).text();

var doAnimate = function() {
    $('span').each(function() {
        var that = $(this);
        setTimeout(function() {
            that.animate({ fontSize: "90px" }, 1500 )
                .animate({ fontSize: "50px" }, 1500 );
        },that.index()*100);
    });
}

$('#' + div.id).html('');

for(i=0; i<text.length; i++) {
  $('#' + div.id).append('<span>'+text[i]+'</span>');
    if(i==text.length-1) doAnimate();
  }

}

 animateDiv(test);

実際には、 this で文字列とオブジェクトを連結しようとしていました$("#"+div)が、これは間違っています。これを行う必要がありますが、$("#"+div.id)これは合法です。

于 2012-07-24T13:07:54.610 に答える
0
  1. animateDiv('test')

  2. 代用$('#' + div + '"') with $('#' + div)

于 2012-07-24T13:05:38.983 に答える
0
var text = $('#' + div + '"').text();

と置換する

var text = $('#' + div).text();
于 2012-07-24T13:02:26.920 に答える