所以我一直在寻找这个,但我仍然没有找到一个解决方案而不一起杀死锚功能。
我正在使用锚标记为某些内容 DIV 的淡入和淡出设置动画。当用户单击另一个锚标记时出现该错误,而前一个的动画仍在发生,我最终将两个 DIV 堆叠在一起。我发现的其他解决方案,杀死链接功能并在之后使它们无用。我需要在那个 DIV 的动画进行时说一些东西,这个锚是没用的。但是一旦动画完成,这个锚就可以正常工作了。
我试过了
if ($("#" + visibleCtn).is(':animated')) {
$("#modRightCol a").click('onclick', null);
}
和
if ($("#" + visibleCtn).is(':animated')) {
$("#modRightCol a").click(function(){
return false
});
}
这完全删除了按钮:
if ($("#" + visibleCtn).is(':animated')) {
$("#modRightCol").undelegate("a", "click");
return false;
}
这是显示和隐藏的代码:
$("#modRightCol").delegate("a", "click", function(e) {
e.preventDefault();
var locInfo = $(this).attr("rel") + "Ctn";
var locBtn = $(this).attr("rel") + "Btn";
newCtn = $('#' + locInfo);
//Change Map Location Button State
cityLink.css('backgroundPosition','bottom');
$(this).css('backgroundPosition','top');
//Hide currently visible information
allInfoCtn.each(function() {
if($(this).hasClass('modActive')) {
visibleCtn = $(this).attr('id');
}
});
$("#" + visibleCtn).animate({
opacity: 0
}, 500, function(){
$("#" + visibleCtn).hide().removeClass("modActive").removeAttr("style");
//Show information related to location clicked
newCtn.show().animate({
opacity: 1
}, 500, function(){
newCtn.addClass('modActive');
});
}); //end animation function
//Block clicks during animation
if ($("#" + visibleCtn).is(':animated')) {
$("#modRightCol").undelegate("a", "click");
return false;
}
});