2

起初我以为是这样。但显然,它不会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(只是因为,不要恨我。)

4

1 回答 1

1

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

你不能绑定hover。您必须绑定mouseentermouseleave

于 2012-06-06T12:48:09.197 回答