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.
您的脚本无效或粘贴错误
$('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)