我有一个滑块(使用 Liquid Slider),我对它进行了一些修改,以 (i) 创建一些颜色过渡和 (ii) 使用外部 prev/next 箭头,它们都在滑块的插件代码之外运行。
我已经使用过渡和箭头来操作滑块,但即使滑块仍在幻灯片之间移动,我也无法阻止多次单击运行颜色过渡。
我试过使用return false
但e.stopImmediatePropagation()
无济于事。
这是我的上一个/下一个箭头的代码:
$('.arrows a')
.click(function(e) {
var link = $(this);
oldTab = $('.liquid-nav a.active'), newTab;
oldTab.removeClass('active').prev().animate({opacity: 0}, 1000);
if (link.hasClass('next')) {
if (oldTab.parent().next().length) { // Test for looping slides
newTab = oldTab.parent().next().find('a');
newTabNum = theSlider.currentTab + 1;
} else {
newTab = $('.tab1').find('a');
newTabNum = 0;
}
console.log( newTabNum );
theSlider.setCurrent( newTabNum );
} else {
if (oldTab.parent().prev().length) { // Test for looping slides
newTab = oldTab.parent().prev().find('a');
newTabNum = theSlider.currentTab - 1;
} else {
newTab = $('.tab' + theSlider.panelCount).find('a');
newTabNum = theSlider.panelCount - 1;
}
console.log( newTabNum );
theSlider.setCurrent( newTabNum );
}
newTab.addClass('active').prev().animate({opacity: 1}, 1000);
$('.liquid-nav').animate({borderTopColor: newTab.attr('data-colour')}, 1000);
$('.arrows a').animate({backgroundColor: newTab.attr('data-colour')}, 1000);
});
滑块插件允许调用和回调,我试图sliding
在动画发生时设置一个 var,以防止箭头在 var 为真时做任何事情,但不幸的是时机不对——设置的调用sliding
to true 在单击处理程序执行之前没有这样做。
箭头的代码很简单:
<div class="arrows">
<a href="javascript:;" class="prev"></a>
<a href="javascript:;" class="next"></a>
</div>
已经有几个与类似问题相关的问题,但如前所述,我已经尝试了建议的解决方案,但运气不佳。任何帮助将非常感激 :)