jQuery - 将内容加载到DIV中,链接在Safari中不起作用

时间:2011-05-12 20:32:36

标签: jquery

我遇到了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;
});
});

以下是我所指的页面:

http://www.fishur.com

内容在浏览器中重新加载为新页面,而不是在DIV内部。点击其中一个鱼名是IE / FireFox / Safari,你会看到我的意思 - 然后点击Safari中的一个名字。

2 个答案:

答案 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;
});
});

您必须阻止默认操作。