Jquery $ get/$ ajax在所有浏览器中都不起作用

Joh*_*ohn 5 ajax jquery cross-browser

我有如下代码:

$('a.load-more').on("click",function(){
    $.get($('a.load-more').attr('href'), function(data) {
   $(".next-page").remove();
   $('.block-grid').append(data);
   event.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)

html:

<li class="next-page">
<a href="http://example.com/ajax_all/" class="load-more">Load More ?</a>
</li>
Run Code Online (Sandbox Code Playgroud)

您可以看到,从.load-more元素中获取ajax内容的url,将其传递给$ get方法,然后将其拉入内容并将其附加到当前页面中.

奇怪的是,这可以在Chrome中使用,但不适用于Firefox或Safari,并且检查员在这些浏览器中没有js错误.

不是使用ajax来拉取内容,而是转到网址http://example.com/ajax_all/并显示其内容.

我很难过为什么它可以在Chrome中运行,而不是Safari或firefox.

Mar*_*man 5

您的脚本无效或粘贴错误

$('a.load-more').on("click", function () {
    $.get($('a.load-more').attr('href'), function (data) {
        $(".next-page").remove();
        $('.block-grid').append(data);
        event.preventDefault();

});
Run Code Online (Sandbox Code Playgroud)

修复之后,它表明你event.preventDefault();的内部发生了get()异步.

$('a.load-more').on("click", function () {
   $.get($('a.load-more').attr('href'), function (data) {
      $(".next-page").remove();
      $('.block-grid').append(data);
      event.preventDefault();
   });
});
Run Code Online (Sandbox Code Playgroud)

preventDefault呼叫置于外部应该可以解决您的问题.

$('a.load-more').on("click", function (e) {
    $.get($('a.load-more').attr('href'), function (data) {
        $(".next-page").remove();
        $('.block-grid').append(data);

    });
    e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)