我有一个单击事件,用于$.ajax
调用服务器以获取一些更新的 html(来自我的数据库)。
div
然后,我使用该方法将该 html 放在一个特定的 中.append()
,从而保留里面已经存在的内容。
到目前为止,它按预期工作。我的困境是每个新附加的html。澄清一下,我的 html 只不过是一个带有链接和隐藏跨度的 div。我使用toggle()
隐藏跨度的链接,它的内容。
Toggle 不起作用,因为 click 事件没有监听新附加的 html。
我确信这很容易补救,但直到现在我才需要深入研究。
所以,这是第 1 页的代码:
<div id="latestinfo">
<div class="info">
<a href="javascript:void(0)" class="openinfo">View This</a>
<span style="display:none">Latest story on something</span>
</div>
<div class="info">
<a href="javascript:void(0)" class="openinfo">View This</a>
<span style="display:none">Latest story on something</span>
</div>
</div>
<a href="javascript:void(0)" id="grabmoreinfo">Call Server for More</a>
<script language="javascript" type="text/javascript">
$(document).ready(function(){
$(".openinfo").click(function(){
$(this).next('span').toggle();
});
$("#grabmoreinfo").click(function(){
$.ajax({
url: "latest.php",
data:"formId=grabmore",
success:function(data){ $("#latestinfo").append(data); }
});
});
});
</script>
现在最新的.php:
<?php
$var = '
<div class="info">
<a href="javascript:void(0)" class="openinfo">View This</a>
<span style="display:none">Another story on something</span>
</div>
';
echo $var;
?>
因此,总而言之,这些append()
工作就像一个魅力,而该click()
方法没有注意到新附加的 html。