2012-03-30 4 views
0

Я создал одно меню, используя div, анимацию в середине, я структурировал. присутствует, когда я нажал кнопку открытия, что меню div расходует на правую сторону некоторую фиксированную ширину. но мое требование после расширения меню вместо открытого слова «закрыть» нужно добавить. при нажатии «закрыть» меню «div» должно свернуть до предыдущей ширины, а «закрыть» - вместо закрытия.Как написать функцию возврата jquery

ответ

1

Функция animate имеет полный параметр, в котором вы можете обеспечить обратный вызов.

Этот ответ будет активирован после завершения события. В этом обратном вызове вы можете редактировать свои значения.

Измените класс своего li на «close». Также: используйте «живую» привязку. Этот будет работать даже с динамическим изменением html.

CSS:

.open{ 
    cursor:pointer; 
    background:black; 
    color:white; 
} 
.close { 
    cursor:pointer; 
    background:black; 
    color:white; 
} 

JS:

$(".open").live('click', function() { 
$("#navMenu").animate({ 
    width: "82px" 
}, { 
    queue: false, 
    duration: 500, 
    complete: function() { 
     $(".open").text("<- CLOSE"); 
     var $this = $(".open"); 
     $this.removeClass(); 
     $this.addClass("close"); 
    } 
}); 
}); 

$(".close ").live('click', function() { 
$("#navMenu ").animate({ 
     width: "50px" 
    }, { 
     queue: false, 
     duration: 500, 
     complete: function() { 
      $(".close").text("OPEN - >"); 
      var $this = $(".close"); 
      $this.removeClass(); 
      $this.addClass("open"); 
     } 
    }); 
});​ 
+0

Прежде всего, спасибо за ваш ответ, но только я помещен с моим кодом, который я поместил в моей скрипке, но это не работает. – user1254422

+0

Я написал это только из воздуха. Я обновил свой код. Протестировано в вашей скрипке :) – Yoeri

+0

спасибо ... закрыть текст придет, но после щелчка по закрытию снова он должен перейти в Open .... надеюсь, что вы поймете – user1254422