Javascript jQuery禁用链接(如果已在第页上)

Javascript jQuery禁用链接(如果已在第页上),javascript,jquery,Javascript,Jquery,我有一个jquery代码,当用户单击列表中的链接时,它会将html页面动态加载到div中 如果用户已经在查看其链接到的页面,是否有方法禁用其中一个链接?现在,每次单击链接时都会触发加载动画,即使请求的链接已经显示 如果它调用和加载的页面已经显示,我需要事件不触发 $('#navigation a').click(function(){ var toLoad = $(this).attr('href')+' #content'; $('#content').hide("slide

我有一个jquery代码,当用户单击列表中的链接时,它会将html页面动态加载到div中

如果用户已经在查看其链接到的页面,是否有方法禁用其中一个链接?现在,每次单击链接时都会触发加载动画,即使请求的链接已经显示

如果它调用和加载的页面已经显示,我需要事件不触发

$('#navigation a').click(function(){

    var toLoad = $(this).attr('href')+' #content';
    $('#content').hide("slide",{direction:"up"},1000,loadContent);
    window.location.hash = $(this).attr('href').substr(0,$(this).attr('href').length-5);
    function loadContent() {
        $('#content').load(toLoad,'',showNewContent())
    }
    function showNewContent() {
        $('#content').show("slide",{direction:"down"},1000);
    }
    return false;

});

您可以添加一个自定义类,该类将禁用您单击的链接。比如:

$('#navigation a').click(function(){
  ......
  $(this).addClass('disabled');
  ....
}
但您可能需要以某种方式将该类从以前添加的其他链接中删除(这样您就不会在几次单击后禁用整个菜单。因此您可以进行一些重置,如:

$('#navigation a').click(function(){
  ......
  $('#navigation a').removeClass('disabled');
  $(this).addClass('disabled');
  ....
}
这只是一个简单的逻辑。我相信它可以优化或以不同的方式编写


编辑:Css类在这种情况下可能无法使用。我不确定是否可以使用disable()或者你可以在这个链接上执行不同的逻辑,比如使用preventDefault,但是你仍然需要以这种方式跟踪禁用的元素,这样你就可以在单击另一个元素后启用它们。

你不能只在变量中跟踪你的当前页面吗?在jQuery调用之前保存想要的href的值,然后再进行comp考虑到这一点?只是一个建议,为什么要在单击事件中删除这些函数,将它们移到document.ready以便任何人都可以访问它们?至少,您需要删除
.load()
-也没有理由将空字符串作为第二个参数传递:
$('#content')。load(toLoad,showNewContent)