此问题特别适用于Safari。
<div id="list">
<ul>
<li onclick="do_something();"><!-- block with stuff in it --></li>
</ul>
</div>
正常加载上述内容后,onclick将应用于整个li块。问题是,稍后我使用ajax动态填充#list div ...
$("#list").html('<ul><li onclick="do_something();"><!-- block with stuff in it --></li></ul>');
click事件不会触发整个块,而只触发块的一部分(即块内不存在内容的部分,即背景)。
答案 0 :(得分:2)
这很奇怪。您可以使用jquery事件:
$("#list")
.empty()
.append ( $('<ul><li><!-- block with stuff in it --></li></ul>' )
.find('li')
.click(dosomething)
.end()
);
答案 1 :(得分:0)
出于奇怪的安全原因,在使用innerHTML属性(这正是html()所做的)时,您无法使用onclick。您需要使用addEvent(mootools)附加事件 - &gt;在jquery中找到一些相关的方法