我试图在AJAX调用后在我的内容中选择一些链接,但它似乎不适用于IE6和IE7(未测试8或9)。单击时应该覆盖链接,并且应该触发警报。但是,IE仍试图转到该地址。它在Chrome和Firefox中运行良好。
这是主要的HTML文档
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Cavern Sounds - Music production services</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
</head>
<body>
<a href="someplace.html">someplace 1</a>
<div id="content"></div>
<script type="text/javascript">
$.ajax({
url: "content.html",
success:
function(html){
$("#content").html(html);
$('a[href="someplace.html"]').click(function(e){
e.preventDefault();
alert("hello world");});
}
});
</script>
</body>
</html>
这里是“content.html”,AJAX调用检索的片段
<a href="someplace.html">someplace 2</a>
有趣的是,IE仍然会覆盖第一个链接(AJAX调用未检索到的链接)。它只是AJAX调用检索到的内容中没有被覆盖的链接。
任何建议都表示赞赏。谢谢!
答案 0 :(得分:2)
请尝试使用实时绑定事件
$(function(){
$('a[href*="someplace.html"]').live('click', function(e){
e.preventDefault();
alert("hello world");
});
$.ajax({
url: "content.html",
success:
function(html){
$("#content").html(html);
}
});
});
答案 1 :(得分:1)
试试此代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Cavern Sounds - Music production services</title>
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
</head>
<body>
</body>
<script type="text/javascript">
$.ajax({
url: "content.html",
success:
function(html){
$("body").html(html);
$('a[href*="someplace.html"]').live("click",(function(e){
e.preventDefault();
alert("hello world");}));
alert($('a[href*="someplace.html"]').size());
}
});
</script>
答案 2 :(得分:0)
尝试使用.live()代替.click(),甚至更好地使用.delegate()。
您尝试绑定的链接稍后已经介绍,在.click()绑定之前可能无法使用。
这是一个JSfiddle,但现在看来它可能是一个选择器问题...... JSFiddle