2012-11-09 98 views
-1

为什么此代码不能用作onclick?Onclick无法正常工作

$('.mainz11').click (function() { 
    $(this).animate({ 
     height: '280px' 
    }, 800); 
}, function() { 
    $(this).animate({ 
     height: '100px' 
    }, 800); 
}); 
+5

[点击](http://api.jquery.com/click/)只需要1个处理函数参数,而不是2个。你想要做什么?另请参阅[如何接受答案](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)。 – jbabey

回答

2

如果你试图首先扩展元素,然后收缩它,它应该是这样的:

$('.mainz11').click(function() { 
    // determine target heights 
    if ($(this).hasClass("expanded")) { 
      var targetHeight = 100; 
    } else { 
     var targetHeight = 280; 
    } 

    // animate 
    $(this).animate({ 
     height: targetHeight 
    }, { 
     duration: 800, 
     complete: function() { $(this).toggleClass("expanded"); } 
    }); 
}); 

这可以使用一些清理,但它有诀窍,你可以用这种方式轻松地跟踪扩展项目。 请参阅:http://jsfiddle.net/mpQek/3/

0

click函数只接受一个函数,但你传递了2个函数。你可以试试这样说:

$('.mainz11').click (function() { 
    $(this).animate({ 
    height: '280px' 
    }, 800); 
    }); 
0

如果你想链的动画,把一个动画的函数,在完成第一个动画的运行:

$('.mainz11').click (function() { 
    $(this).animate({ height: '280px', 800, 
    function() { $('.mainz11').animate({ height: '100px'}, 800) 
); 
});