Jquery 函数的作用是:重新加载页面

Jquery 函数的作用是:重新加载页面,jquery,load,Jquery,Load,我有以下代码: $("a.ajax").on('click', function() { ajax_link(); }); function ajax_link() { $('#ajax_load').remove(); // Remove js $('#section').html('<?php echo $this->ajax_loading; ?>'); setInterval( function() { $('#section'

我有以下代码:

$("a.ajax").on('click', function() {
    ajax_link();
});

function ajax_link() {
   $('#ajax_load').remove(); // Remove js
   $('#section').html('<?php echo $this->ajax_loading; ?>');
   setInterval( function() {
       $('#section').load($(this).attr('href')+'&ajax=true'); 
       return false;
   }, 1000);
}
$(“a.ajax”)。在('click',function()上{
ajax_link();
});
函数ajax_link(){
$('#ajax_load').remove();//remove js
$('#section').html('');
setInterval(函数(){
$('#section').load($(this.attr('href')+'&ajax=true');
返回false;
}, 1000);
}
但当我点击链接时,它会重新加载页面,而不是加载内容。有人知道为什么吗


我添加了代码的其余部分以确保不是这样。

您需要防止锚点的默认行为,这会导致页面重新加载。您可以通过事件参数中可用的
preventDefault()
方法执行此操作

$("a.ajax").on('click', function(e){
       e.preventDefault();
      ajax_link.call(this);
});
另一个问题是,在setInterval回调中,this表示窗口,而不是您单击的锚点,因此将
this
上下文缓存到变量中并使用它

function ajax_link(){
var self = this; //Cache it here
setInterval(function(){
    $('#section').load(self.href +'&ajax=true'); 
        return false; //You dont need this.
     },1000);
}
或者干脆把它绑起来:

$("a.ajax").on('click', ajax_link);


function ajax_link(e){
var self = this; //Cache it here
e.preventDefault();
setTimeout(function(){ //Use setTimeout
    $('#section').load(self.href +'&ajax=true'); 
        return false; //You dont need this.
     },1000);
}

您需要防止锚点的默认行为,这会导致页面重新加载。您可以通过事件参数中可用的
preventDefault()
方法执行此操作

$("a.ajax").on('click', function(e){
       e.preventDefault();
      ajax_link.call(this);
});
另一个问题是,在setInterval回调中,this表示窗口,而不是您单击的锚点,因此将
this
上下文缓存到变量中并使用它

function ajax_link(){
var self = this; //Cache it here
setInterval(function(){
    $('#section').load(self.href +'&ajax=true'); 
        return false; //You dont need this.
     },1000);
}
或者干脆把它绑起来:

$("a.ajax").on('click', ajax_link);


function ajax_link(e){
var self = this; //Cache it here
e.preventDefault();
setTimeout(function(){ //Use setTimeout
    $('#section').load(self.href +'&ajax=true'); 
        return false; //You dont need this.
     },1000);
}
使用

不会触发事件的默认操作

或者你可以修改你的HTML

<a class="ajax" href="javascript:void(0)">Load ajax</a>

使用

不会触发事件的默认操作

或者你可以修改你的HTML

<a class="ajax" href="javascript:void(0)">Load ajax</a>


如果您使用的是最新版本的jQuery,则单击事件处理程序可能会返回false。返回false将阻止default()和stopPropagation()。StackOverflow引用了此

如果您使用的是最新版本的jQuery,那么单击事件处理程序可能会返回false。返回false将阻止default()和stopPropagation()。StackOverflow引用了此

这仍然不起作用。
#部分
现在变为空白。似乎仍然没有加载页面。你需要我提供更多信息吗?如果是,什么?谢谢mate@Jay除非您正在从另一个域访问url,否则它必须。网络控制台是你的朋友。检查是否有任何错误。呵呵,它正在工作,非常感谢。但是setinterval让页面每秒钟加载一次,最好删除这个lol。但是我如何让加载的图像显示至少1-2秒呢?@Jay使用setTimeout而不是setinterval。查看我的答案更新。这仍然不起作用。
#部分
现在变为空白。似乎仍然没有加载页面。你需要我提供更多信息吗?如果是,什么?谢谢mate@Jay除非您正在从另一个域访问url,否则它必须。网络控制台是你的朋友。检查是否有任何错误。呵呵,它正在工作,非常感谢。但是setinterval让页面每秒钟加载一次,最好删除这个lol。但是我如何让加载的图像显示至少1-2秒呢?@Jay使用setTimeout而不是setinterval。查看我的答案更新。感谢您的支持和支持help@Jay欢迎乐于帮助:)感谢您的支持和支持help@Jay欢迎乐意帮忙:)