在两个函数之间传递变量
Deliver variable between two functions
我正在使用这个简单的脚本来创建一些滑块,它在 mouseenter 时开始,应该在 mouseleave 时停止:
$( ".grid-item" ).mouseenter(function() {
var slides = $(this).find( ".slide-image" ),
counter = 0;
var test = setInterval(function(){
slides.removeClass('active');
slides.eq(counter).addClass('active');
counter++;
if (counter > slides.length) {counter = 0;};
}, 600);
}).mouseleave(function() {
clearInterval(test);
// $( ".slide-image" ).removeClass('active');
});
Slider 启动得很好,但在 mouseleave 事件上我收到控制台错误 "Uncaught ReferenceError: test is not defined"。我认为那是因为间隔的变量没有在第二个函数中传递。有什么解决办法吗?
Check out my CodePen!(这里没问题)
在函数外声明你的变量test
var test;
$( ".grid-item" ).mouseenter(function() {
var slides = $(this).find( ".slide-image" ),
counter = 0;
test = setInterval(function(){
slides.removeClass('active');
slides.eq(counter).addClass('active');
counter++;
if (counter > slides.length) {counter = 0;};
}, 600);
}).mouseleave(function() {
clearInterval(test);
// $( ".slide-image" ).removeClass('active');
});
我正在使用这个简单的脚本来创建一些滑块,它在 mouseenter 时开始,应该在 mouseleave 时停止:
$( ".grid-item" ).mouseenter(function() {
var slides = $(this).find( ".slide-image" ),
counter = 0;
var test = setInterval(function(){
slides.removeClass('active');
slides.eq(counter).addClass('active');
counter++;
if (counter > slides.length) {counter = 0;};
}, 600);
}).mouseleave(function() {
clearInterval(test);
// $( ".slide-image" ).removeClass('active');
});
Slider 启动得很好,但在 mouseleave 事件上我收到控制台错误 "Uncaught ReferenceError: test is not defined"。我认为那是因为间隔的变量没有在第二个函数中传递。有什么解决办法吗?
Check out my CodePen!(这里没问题)
在函数外声明你的变量test
var test;
$( ".grid-item" ).mouseenter(function() {
var slides = $(this).find( ".slide-image" ),
counter = 0;
test = setInterval(function(){
slides.removeClass('active');
slides.eq(counter).addClass('active');
counter++;
if (counter > slides.length) {counter = 0;};
}, 600);
}).mouseleave(function() {
clearInterval(test);
// $( ".slide-image" ).removeClass('active');
});