Animate应该修改点击的li宽度

时间:2012-01-21 18:35:20

标签: jquery css jquery-animate

我有一个li列表,当点击其中一个时,会触发动画。然而,我的最后一个动画不起作用。它应该修改被点击的li的大小:$('#wrapper li').index(this).css({'width': '200px'}); 请注意,如果我删除“.index(this)”它正在处理所有li,但这又不是我想要的。这里是完整代码。非常感谢您的回复。干杯。马克。

$('#wrapper li').click(function () {

    //Here is set my varaibles

     $('#wrapper li').slice(startLi, endLi).animate({
         "left": '-=' + leftDistance
     }, "fast", function () {
         $('#wrapper li').slice(indexLi + 1, endLi).stop().animate({
             "left": "+=225px"
         }, "slow", function () {
             $('#wrapper li').index(this).css({'width': '200px'});
         });
     });
 });

1 个答案:

答案 0 :(得分:0)

.index会返回Number,这就是.css无效的原因。

  

应该修改点击的li的大小

你可以通过缓存this的外部值(在事件处理程序中引用被点击的元素)并在稍后的动画函数中使用它来使其工作:

$('#wrapper li').click(function () {
    var self = this;
    //Here is set my varaibles

     $('#wrapper li').slice(startLi, endLi).animate({
         "left": '-=' + leftDistance
     }, "fast", function () {
         $('#wrapper li').slice(indexLi + 1, endLi).stop().animate({
             "left": "+=225px"
         }, "slow", function () {
             $(self).css({'width': '200px'});
         });
     });
 });