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
var text = $('#' + div + '"').text();

用。。。来代替

var text = $('#' + div).text();
于 2012-07-24T13:02:26.920 回答
0
  1. animateDiv('test')

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

于 2012-07-24T13:05:38.983 回答