在页面加载时,我将事件处理程序与页面加载时隐藏的内容绑定。
如果用户点击按钮,隐藏的内容被拉出并替换页面的主要内容,现在最初绑定的事件处理程序不起作用。
页面加载时的 HTML 代码
<p> Initial content of the page </p>
<button id="button"> Click Here to change content</button>
<div class="show-later" style="display: none;"> Some Hidden content </div>
用户单击按钮后,新的 dom 看起来像这样
<p>
<div>Some Hidden content</div>
</p>
操作后,绑定到 div 元素的事件处理程序不再工作。请注意,在 DOM 操作之后 div 进入了 P 元素。
jQuery代码:
$('#button').click(function(){
var show_later = $('.show-later').html();
$('p').html(show_later);
});
$(document).ready(function(){
$('.show-later').click(function(){
// Do something.....
});
});