我创建了一个对simple.carousel.js的编辑,以便在悬停时停止旋转木马,但是我在使用mouseleave时重新启动它有一个问题。我添加到simple.carousel.js的代码是:
// hover stop
if(config.auto!=true)
$(this).mouseenter(function() {
config.auto=false;
}).mouseleave( function() {
config.auto=true;
});
您可以在此处看到完整的代码/示例,我在上面添加了http://jsfiddle.net/6r6sC/2/
我的mouseleave功能有问题吗?
不确定这是否会有所帮助,但我也尝试了以下但是这也不起作用:
// hover stop
if(config.auto!=true)
$(this).mouseenter(function() {
config.auto=false;
}).mouseleave( function() {
setTimeout(function() {
slide('next');
}, config.auto);
});
任何帮助都会非常感激,因为这让我很难过。
答案 0 :(得分:0)
使用true作为值是一个问题,导致false boolean或init函数需要int。
编辑4: http://jsfiddle.net/6r6sC/44/
幻灯片()中的,添加了startAuto()
if(config.auto!=false) {
startAuto();
}
EDIT3: 修复了多个定时器的问题,并创建了两个函数来处理启动/停止自动滑块。
此处的解决方案:http://jsfiddle.net/6r6sC/41/
var cachedAuto = config.auto;
var timer = "";
var startAuto = function() {
config.auto = cachedAuto;
clearTimeout(timer);
timer = setTimeout(function() {
slide('next');
}, config.auto);
}
var stopAuto = function() {
clearTimeout(timer);
config.auto = false;
}
if(config.auto!=false) {
// start auto sliding
startAuto();
// pause/start on mouse events
$(this).on("mouseenter", function(event){
stopAuto();
}).on("mouseleave", function(event){
startAuto();
});
}
答案 1 :(得分:-1)
好的,我已经做了一些研究和测试,并将'mouseleave'替换为'mouseout'它有效!所以试试吧。
// hover stop
if(config.auto!=true)
$(this).mouseenter(function() {
config.auto=false;
}).mouseout( function() {
config.auto=true;
});