jQuery - 在停止传播时“重新绑定”

时间:2012-04-01 04:56:08

标签: jquery bind

我的情况是:

  1. 我向容器添加了一个点击监听器
  2. 点击后我删除了监听器,只有孩子才能识别出点击
  3. 点击子项后,将恢复容器的功能
  4.    _______________________
      | #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 个答案:

答案 0 :(得分:1)

将第二个函数参数传递给click方法并不能完成您的想法。看看docs

http://jsfiddle.net/F9aJ4/1/你想要做什么?