是否可以将setInterval设置为全局变量,以便可以通过单独的函数访问它?

时间:2012-06-06 12:39:53

标签: jquery

起初我以为是这种情况。但显然,它不会clearInterval

为了使其可访问,我设置了一些命名空间的全局变量。

    $.faux_download = {};
    $.faux_download._counter = 0;

然后,我在单独的可共享方法中分离悬停操作的每个细节。

  init_hover_handler: function($this, evt) {
    $this = $($this);
    $.faux_download._counter = setInterval(function(){ SSK.calendar.check_load_popup($this) }, 1000);
  },
  init_hover_out_handler: function() {
    clearInterval($.faux_download._counter);
  },

现在这一切都在这里,直到我动态添加共享相同功能的对象

我使用live事件来绑定:

    $(".extended-cell-popup:last .job a, .extended-cell-popup:last .task a").live('hover', function(evt){
      SSK.calendar.init_hover_handler(this, evt);
    }, function(){
      SSK.calendar.init_hover_out_handler();
    });

现在鼠标悬停在这里工作,但清除间隔似乎不适用于这些新创建的动态项目。

但是,如果我将某些加载了该页面的鼠标移到鼠标处,那些会成功清除该间隔并正常工作。

有人知道为什么会这样吗?

jQuery 1.4.4(只是因为,不要讨厌我。)

1 个答案:

答案 0 :(得分:1)

通常我会删除它,但这实际上是一个有趣的答案。

您无法绑定hover。您必须绑定mouseentermouseleave