我遇到了jQuery和Safari(5.03)的问题。希望这是有道理的。
我使用下面的代码将页面加载到DIV中。在父页面上,我有一些代码可以选择加载的内容中的所有链接,并将链接(单击时)指向同一个DIV。这在IE,Firefox和Chrome中运行良好,但我无法在Safari中使用它。 resultsDisplay是加载内容中所有链接的类。这有意义吗?如何将加载内容中的链接加载到父页面上的相同div中(#results)。
jQuery(document).ready(function(){
$(".resultsDisplay a").click(function() {
$.ajax({
url: $(this).attr("href"),
success: function(msg){
$("#results").html(msg);
}
});
return false;
});
});
以下是我所指的页面:
内容在浏览器中重新加载为新页面,而不是在DIV内部。点击其中一个鱼名是IE / FireFox / Safari,你会看到我的意思 - 然后点击Safari中的一个名字。
答案 0 :(得分:2)
更新
我在这里看到了真正的问题。您正在动态加载这些元素,而您只在文档onload上设置事件处理程序。执行此代码时,元素不存在。要解决此问题,请使用jQuery的live()
处理程序,或在加载该部分后重新运行init。
不要将网址放在href元素中。而是使用别的东西。单击URL时,浏览器将打开href。
另一个选择:不要为这些按钮使用<a>
标记。
另一个选择:使用jQuery event.preventDefault();
答案 1 :(得分:0)
jQuery(document).ready(function(){
$(".resultsDisplay a").click(function(event) {
event.preventDefault();
$.ajax({
url: $(this).attr("href"),
success: function(msg){
$("#results").html(msg);
}
});
return false;
});
});
您必须阻止默认操作。