我无法让IE7将点击事件绑定到使用.load()添加到DOM的元素。这是一些代码:
$('.mybtn').live('click', function(e){
e.preventDefault();
$('#mypage').load('load-this-page.htm');
});
这是html
<div id="mypage">
<a href="#" class="mybtn">clickme</a>
// stuff goes here
</div>
在页面加载时,单击可以正常工作,但是一旦通过clickme链接加载div,单击将停止在IE7中工作。 clickme链接在加载div内,也在load()加载的html文件中,这就是我使用live()的原因。
此代码适用于FF 3.6,fyi。
任何人都知道发生了什么事(除了IE吸球之外)?谢谢!
编辑:这是加载到div中的内容
<ul>
<li>
<a href="02-01-2010" id="prev-month" class="mybtn"></a>
</li>
<li>
<h3>March 2010</h3>
</li>
<li>
<a href="04-01-2010" id="next-month" class="mybtn"></a>
</li>
</ul>
<a href="#">link 1</a>
<a href="#">link 2</a>
<a href="#">link 3</a>
<a href="#">link 4</a>
答案 0 :(得分:1)
试试这个:
$('#mypage').load('load-this-page.htm #DivOrWrapper');
答案 1 :(得分:0)
从API documentation,您正在加载的页面(“load-this-page.htm”)不能是完整的HTML文档,即它不能包含<html>
,{{1 }}或<title>
元素,否则无法保证跨浏览器兼容性。
答案 2 :(得分:0)
可能这是由于IE浏览器的限制。以下是jQuery Docs的引用:
由于浏览器安全限制,大多数“Ajax”请求都受same origin policy的约束;请求无法成功从其他域,子域或协议中检索数据。
这意味着您无法执行$ load:
答案 3 :(得分:0)
试试这个:
var fn = function(e) {
e.preventDefault();
$('#mypage')
.load('load-this-page.htm')
.find('.mybtn')
.click(fn);
};
$('.mybtn').live('click', fn);