我有滑块设置,使用setInterval
每5秒点击一次下一个按钮。我的计划是,当您将鼠标悬停在图像上时,此点击停止。我能想到这样做的唯一方法就是写一个新的setInterval
来徘徊那么久以至于什么都不会发生。但这不起作用,因为它不会覆盖原始的。
有没有办法在jQuery中执行此操作?所有我想做的就是在悬停时停止点击触发....
setInterval(function() {
jQuery('.next_button').trigger('click');
}, 1000);
$(".main-slide img").hover(function () {
setInterval(function() {
jQuery('.next_button').trigger('click');
}, 60000000);
},
function() {
setInterval(function() {
jQuery('.next_button').trigger('click');
}, 1000);
}
);
答案 0 :(得分:2)
你可以使用一个标志,当鼠标悬停在元素上时设置它,当鼠标离开元素时取消设置,并在触发点击之前检查它:
var mouse_is_over = false;
setInterval(function () {
if (!mouse_is_over) $('.next_button').trigger('click');
}, 1000);
$(".main-slide img").on('mouseenter mouseleave', function(e) {
mouse_is_over = e.type == 'mouseenter';
});
答案 1 :(得分:1)
创建具有单击函数定义的函数,然后:
$('.element').hover(
function(){
$(this).unbind('click')
},function(){
$(this).click(function(){
definedBeforeClickFunction();
});
});
这样你就不需要清除间隔了。
答案 2 :(得分:0)
试试这个,
$(document).ready(function(){
slider();
function slider(){
var t = setInterval(function() {
jQuery('.next_button').trigger('click');
}, 1000);
}
$(".main-slide img").hover(function () {
clearInterval(t);
}
$(".main-slide img").mouseout() {
slider();
}
);
});
答案 3 :(得分:0)
您是否尝试删除setinterval?
然后尝试
var p = setinterval(function(){ //code },time);
之后
clearInterval(p);