我有一个脚本,我正在开发创建一个滑动按钮类型效果。五个div位于彼此旁边,每个链接都有一个链接。当其中一个DIVS被点击时,关联的内容会被扩展,其余的Div将被关闭。防止Javascript被执行两次
问题是,如果用户在加载时点击Div两次,或者快速连续单击另一个Div,则会出现裂缝。
我想知道是否可以只允许查询执行一次,并等到完成而不是排队。
这里是我当前的代码,如果是垃圾随意对我如何能更好地对此发表评论......我不是最好的,在使用Javascript/jQuery的:P提前
function mnuClick(x){
//Reset all elements
if($('#'+x).width()!=369){
$('.menu .menu_Graphic').fadeOut(300);
$('.menu_left .menu_Graphic').fadeOut(300);
$('.menu_right .menu_Graphic').fadeOut(300);
$('.menu').animate({width: "76px"},500);
$('.menu_left').animate({width: "76px"},500);
$('.menu_right').animate({width: "76px"},500);
}
var ElementId = '#' + x;
$(ElementId).animate({
width: 369 + "px"
},500, function(){
$(ElementId + ' .menu_Graphic').fadeIn(300);
});
}
谢谢, 克里斯。
+1正如我刚才所说的,只需拥有一个跟踪事件是否运行的变量,并在开始处理之前对其进行初始化(以便禁用所有其他事件)。 – Jakub 2010-11-15 15:35:20
非常感谢。伟大的解决方案,但很简单 – Chris 2010-11-16 10:17:14