请看一下这个jsfiddle
如果您足够快地单击顶部的 div,您会发现最终会出现两个 div。我以前也遇到过 jQuery 的这个问题。在这种情况下,我只是最终禁用了按钮(或动画触发器),但我想知道是否有更优雅的解决方案。
这是我的 jQuery 代码 -
$(function () {
var _animDuration = 400;
$("#tabLists a").click(function () {
var attrHref = $(this).attr('href');
// Get shown anchor and remove that class -
$('.shownAnchor').removeClass('shownAnchor');
$(this).addClass('shownAnchor');
// first hide currently shown div,
$('.shownDiv').fadeOut(_animDuration, function () {
debugger;
// then remove the shownDiv class, show the clicked div.
$(this).removeClass('shownDiv');
$('#' + attrHref).fadeIn(_animDuration, function () {
// then add that shownDiv class to the div currently being shown.
$(this).addClass('shownDiv');
})
});
return false;
});
});
我到处都在使用回调。我想要一个让动画排队的解决方案,而不是让我点击