JQuery:在display:none之后删除了事件监听器?

时间:2014-08-26 21:19:01

标签: javascript jquery css

我有一个带有"点击"的按钮。使用jQuery bind()在其上定义的事件侦听器。事件监听器工作正常,直到我(以编程方式)在父元素上执行display:none(有效地隐藏父元素和按钮)。当我取消隐藏父元素(display:block)时,该按钮不再起作用。

示例:假设我使用以下事件侦听器获得以下HTML标记:

$( ".my-button" ).bind( "click", myFunction );

<div class="container">
  <div class="my-button">Button</div>
</div>

如果我,使用另一个jQuery函数,请执行

$(".container").css('display', 'none');

事件监听器消失。这种行为有望吗?我需要在每个display:none之后重新绑定事件监听器吗?

1 个答案:

答案 0 :(得分:1)

http://jsfiddle.net/gadL2rag/

$(".container").css('display', 'none'); 

不会解除绑定事件,它会隐藏.container div及其子节点。但是你打电话给$(“。容器”)。css('display','block'); 再次,事件仍在那里,你不必再绑定它。希望这个帮助