Отмените привязку <li>после щелчка, затем повторите привязку, когда это необходимо - PullRequest
0 голосов
/ 25 января 2011

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

Мне нужно отменить привязку элемента списка после того, как форма открыта, но после закрытия включите его снова.

Код ниже.

jQuery(document).ready(function() {

 jQuery("#header ul.menu li:last-child").addClass("open");

 jQuery("#header ul.menu li.open").click(function() {

  jQuery(this).unbind("click");

  jQuery("#contact").animate({marginTop:'+=426px'}, 2000);

  return false;

 });

 jQuery("#contact a#close").click(function() {

  jQuery("#contact").animate({marginTop:'-=426px'}, 2000);

  jQuery("#header ul.menu li:last-child").live("click", function() {

  });

  return false;

 });

});

1 Ответ

2 голосов
/ 25 января 2011

Вы должны указать ссылку на функцию .unbind() / .bind().

function click_handler() { 
    // do something
}

jQuery("#header ul.menu li.open").click(function() {
   jQuery(this).unbind("click", click_handler);

   jQuery("#contact").animate({marginTop:'+=426px'}, 2000);

   return false;
});

// some code

jQuery("#header ul.menu li.open").bind('click', click_handler);
...