Функция jQuery toggle .click () - PullRequest
       23

Функция jQuery toggle .click ()

3 голосов
/ 06 октября 2011

Я не уверен, нужен ли мне этот «обратный вызов» или нет, но в основном я пытаюсь эмулировать обращение функции, как в эффекте .hover (), с эффектом .click (). Возможно ли это? Таким образом, в основном, если пользователь снова щелкает ссылку, произойдет обратное тому, что только что произошло, то есть закрытие div вместо открытия. Возможно ли это сделать с помощью .click ()?

$(document).ready(function(){
    $('.content_accrd').css({"height":"0px"});
$('.paneltop').click( function() {
    $(this).css({"background-position":"0px -21px"})
    .siblings().animate({"height":"100px"}, 200)
}, function() {
$(this).css({"background-position":"0px 0px"})
    .siblings().animate({"height":"0px"}, 200);

})
})

Ответы [ 3 ]

5 голосов
/ 06 октября 2011

Используйте .toggle(), а не .click().

Описание: Привязать два или более обработчиков к соответствующим элементам, которые будут выполняться поочередным щелчком.

1 голос
/ 06 октября 2011

попробуйте переключить

$(".paneltop").toggle(function(){
    //first click happened
},function(){
    //second click happened
});
0 голосов
/ 06 октября 2011

Нет, действие щелчка всегда будет делать то же самое. Если вы хотите, чтобы он имел чередующиеся эффекты, вам придется проверить текущее состояние элемента и соответственно переключить его в новое состояние.

Это выглядит примерно так:

  $('#foo').click(function () {
    if ( $('#foo').is(':visible') ) {
      $('#foo').hide();
    } else {
      $('#foo').show();
    }
  });

В зависимости от эффекта, который вы пытаетесь достичь, это может быть любое изменение, которое вы хотите.

...