2012-10-18 42 views
0

我正在使用jquery cluetip插件來顯示詳細的工具提示。我在以下問題描述的問題,並遵循公認的答案的建議:ClearTimeout找不到變量

Close a cluetip when the mouse is off of the link

這是我使用的代碼:

if (opts.mouseOutClose) { 
    var closectip; 
    $cluetip.hover(function() { 
    clearTimeout(closectip); 
    }, 
    function() { 
    $closeLink.trigger('click'); 
    }); 
    $this.hover(function() { 
    clearTimeout(closectip); 

    }, function() { 
    closectip = setTimeout(cluetipClose, 1000); 
    }); 
} 

據說這是爲了隱藏在擺脫之後​​提供一秒鐘的提示。這是我第一次查看並鼠標移出提示 - 但是當我查看提示時,它會在1秒後隱藏提示,即使沒有移出。調試發現,下面的代碼無法正常工作:

$this.hover(function() { 
    clearTimeout(closectip); 
} 

據說這是爲了確保超時被清除,當我們在cluetip元素再次懸停,所以它不會一秒鐘後隱藏。但是,執行懸停功能時,「closectip」超時變量未定義。

我怎樣才能使closectip超時變量全局,以便我可以訪問並從懸停事件中清除它?

回答

2

這裏的JavaScript全局變量的說明...

http://snook.ca/archives/javascript/global_variable

所有你需要做的就是擺脫變量聲明,聲明之外的所有功能,或申報(並把它稱爲)window.closectip

+0

謝謝!它做到了。我結束了'$ this.mouseleave更換整個代碼(函數(){ \t \t \t \t cluetipClose(); \t \t \t});',但是這是一個錯誤cluetip,你的答案是正確的? – froadie