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