2012-06-06 55 views
2

起初我以爲是這樣。但顯然,它不會clearInterval是否有可能將setInterval設置爲全局變量,以便通過單獨的函數訪問它?

爲了讓訪問,我設置了一些命名空間的全局變量。

$.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

一般情況下我刪除此,但它實際上是一個有趣的答案。

您不能綁定hover。您必須綁定mouseentermouseleave

+1

真。 'hover'不是實際的事件,和'.hover(FUNC,FUNC)'是一個簡單的快捷方式一次設置兩個'mouseeneter'和'mouseleave'處理程序。 – lanzz

相關問題