Javascript clearinterval不适用于鼠标指针
Clear Interval不在slider中工作我已经尝试了很多次,但面对同样的问题,有人能告诉我这里的问题是什么,我如何解决这个问题吗?这是Jquery中的图像滑块Javascript clearinterval不适用于鼠标指针,javascript,jquery,web,Javascript,Jquery,Web,Clear Interval不在slider中工作我已经尝试了很多次,但面对同样的问题,有人能告诉我这里的问题是什么,我如何解决这个问题吗?这是Jquery中的图像滑块 <script> $(document).ready(function() { var current = 2; var sl = $(".aa").length; var interval; function startSlider() { interval = se
<script>
$(document).ready(function() {
var current = 2;
var sl = $(".aa").length;
var interval;
function startSlider() {
interval = setInterval(function() {
$(".slider-wrapper").delay(2000);
$(".slider-wrapper").animate({
'margin-left': '-=910'
}, 2000, function() {
current++;
if (current === sl) {
current = 1;
$(".slider-wrapper").delay(2000).animate({
'margin-left': '0'
}, 2000);
}
})
}, 3000);
}
function stopSlider() {
clearInterval(interval);
}
$(".slider-wrapper").on('mouseenter', stopSlider).on('mouseleave', startSlider);
startSlider();
});
</script>
$(文档).ready(函数(){
无功电流=2;
var sl=$(“.aa”).长度;
var区间;
函数startSlider(){
间隔=设置间隔(函数(){
美元(“.slider wrapper”)。延迟(2000年);
$(“.slider wrapper”).animate({
“左边距”:“-=910”
},2000,函数(){
电流++;
如果(当前===sl){
电流=1;
$(“.slider wrapper”).delay(2000)。动画({
“左边距”:“0”
}, 2000);
}
})
}, 3000);
}
函数stopSlider(){
间隔时间;
}
$(“.slider wrapper”)。on('mouseenter',stopSlider)。on('mouseleave',startSlider);
startSlider();
});
原因是因为interval
变量是一个全局变量(与窗口关联,可以使用window.interval
或interval
访问,如果我们在窗口的上下文中)
而当您在$(“.slider wrapper”)内调用停止滑块时,在('mouseenter'
)上,此关键字引用的是$(“.slider wrapper”)
元素,而不是窗口
换句话说,间隔
不在此上下文中定义
要解决此问题,只需在窗口的上下文中执行stopSlider
,如下所示:
停止滑块。调用(窗口)
而不是停止滑块
希望这有帮助。尝试使用控制台将interval
记录到屏幕上。记录(interval)
以查看它是否存在(从浏览器开发人员工具控制台选项卡ctrl+shift+i)。我已经检查过了。没有错误。它是否返回任何整数值?您可以为它发送html代码。