我有这个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;
});
答案 0 :(得分:2)
您可以添加一个自定义类,该类会禁用您点击的链接。像:
$('#navigation a').click(function(){
......
$(this).addClass('disabled');
....
}
但是,您可能会以某种方式从其他以前添加的链接中删除该类(因此您只需点击几下就不会禁用整个菜单。所以您可以进行一些重置,如:
$('#navigation a').click(function(){
......
$('#navigation a').removeClass('disabled');
$(this).addClass('disabled');
....
}
这只是一个简单的逻辑。我相信它可以以不同的方式进行优化或编写。
编辑:在这种情况下,Css类可能不会成功。我不确定,如果你可以在锚标签上使用disable()。或者你可以像在这个链接上使用preventDefault一样执行不同的逻辑,但是你仍然需要以这种方式跟踪禁用的元素,这样你就可以在点击另一个时启用它们。