Animate должно изменить ширину клика - PullRequest
3 голосов
/ 21 января 2012

У меня есть список li, и при нажатии на одну из них запускается анимация. Тем не менее, моя последняя анимация не работает. Предполагается изменить размер щелкаемого li: $('#wrapper li').index(this).css({'width': '200px'}); Обратите внимание, что если я удаляю «.index(this)», он работает на всех языках, но опять же это не то, что я хочу. Здесь ниже полный код. Заранее большое спасибо за ваши ответы. Приветствия. Марк.

$('#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 голосов
/ 21 января 2012

.index возвращает Number, поэтому .css не работает.

Предполагается изменить размер нажатой кнопки

.

Вы можете заставить его работать, кэшируя внешнее значение 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'});
         });
     });
 });
...