2012-04-01 2 views
0

У меня есть ситуации, где:JQuery - «перекомпоновка» при остановке распространения

  1. добавляет щелчка слушатель в контейнер
  2. После щелчка я удалить слушатель так что только ребенок может распознавать щелчок
  3. После ребенка щелкнул функциональность контейнера восстанавливается
 _______________________ 
    | #container [#child] | 
    |_______________________| 

Моя оригинальная идея:

var toggleContainer = function() { 
    var width = ($('#container').width() > 299) ? 145 : 300; 
    $('#container').animate({ width: width }).off('click'); 
} 

$('#container').click(toggleContainer); 

$('#child').click(toggleContainer, function() { 
    $('#container').on('click', toggleContainer); 
}); 

Функциональность работает, за исключением того, что прослушиватель кликов контейнера (toggleContainer) никогда не восстанавливается. Я думал, что проблема может быть распространением события, когда ребенок щелкнут, но добавление event.stopPropagation() к ребенку разбивает все.

Так что я в тупике. Я бы очень признателен за любые советы, которые вы можете предложить. Благодарю.

ответ

1

Передача аргумента второй функции методу click не делает то, что, по вашему мнению, делает. Взгляните на docs.

http://jsfiddle.net/F9aJ4/1/ Что вы пытаетесь сделать?

Смежные вопросы