1

我试图将参数传递给函数,即

 animateDiv(div) {
  .....

}

这个函数有效,但是当我尝试像这样向它传递参数时,它不起作用,即

$activeToggle.toggle("slow", function(){
            $(this).find(".anime_yellow").each(function (i,e){

            console.log(e.id); // this prints simple
            animateDiv(simple); // this works
            animateDiv(e.id);   //this deosnt work but it prints 'simple' 


         });

当我将核心值传递给它工作的函数时,即animateDiv(simple),如果我尝试放置一个包含相同内容的变量,它不会工作animateDiv(e.id),谢谢

完整的代码在这里:http: //jsfiddle.net/Fwhtv/22/

4

3 回答 3

4

animateDiv假设您将传递一个对象。请注意以下几行:

function animateDiv(div){
   var text = $('#' + div.id).text(); //div is assumed to be a div element

如果您想传入一个id,则必须将其更改为:

function animateDiv(divId){
   var text = $('#' + divId).text();

当然div.id,还要更新其他参考资料。

工作:http: //jsfiddle.net/Fwhtv/22/

于 2012-07-24T16:59:37.230 回答
1

从你的jsfiddle:

function animateDiv(div){

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

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

您正在传递 ID,但在函数中您期望该元素。

于 2012-07-24T16:59:07.700 回答
0
$activeToggle.toggle("slow", function(){
      $(this).find(".anime_yellow").each(function (i,e){

            console.log(e.id); // this prints simple
            animateDiv(simple); // this works
            animateDiv(e.id);   //this deosnt work but it prints 'simple' 


         });

在函数 (i, e) 中,e 是元素。

<span id="simple" class="anime_yellow">

要获取 的 id,您需要使用 $(e).attr('id');

animateDiv($(e).attr('id'));

当前,您将参数作为对象传递。如果您传递对象(跨度)的 id,则需要按如下方式更改跨度的 id。

function animateDiv(div){
// var text = $('#' + div.id).text();
var text = $('#' + div).text();

var doAnimate = function() {
    //  $('span.' + div.id).each(function() {
     $('span.' + div).each(function() {

        var that = $(this);
        setTimeout(function() {
            that.animate({ fontSize: "90px" }, 1500 )
                .animate({ fontSize: "50px" }, 1500 );
        },that.index()*100);
    });
} 
于 2012-07-24T17:38:21.000 回答