javascript - 在两个函数之间传递变量

标签 javascript jquery variables mouseevent clearinterval

我使用这个简单的脚本来创建一些 slider ,该 slider 在 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:测试未定义”。我认为那是因为第二个函数中没有传递间隔变量。有什么解决办法吗?

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');

});

关于javascript - 在两个函数之间传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40995472/

相关文章:

java - 修改Java内部类中的变量

javascript - 在 JavaScript 中生成 RSA key 对

javascript - 如何在 React 应用程序中初始化 Bootstrap 4 弹出窗口?

javascript - 每次使用 ajax 调用循环后调用一个函数

javascript - JQuery 将对象附加到附加对象

python - 输入和打印

java - 在我的代码中找不到符号变量 java 错误

javascript - 如何过滤显示的数组并重新显示过滤后的列表?

javascript - RTCPeerConnection 与 RTCConfiguration 在 Firefox 上中断

jquery - 如何销毁/删除/解除绑定(bind) Flexslider