2011-07-10 61 views
0

我使用了一個全局變量,它在鼠標輸入的div上切換true和false,然後我使用其他位置的值來顯示/隱藏另一個元素,具體取決於值。元素鼠標的名稱是徘徊

其實,另一種做我想做的事的方法是知道鼠標是否懸停在名爲MyDiv的div上。 我期待刪除使用mouseenter/mouseleave事件切換的全局變量。

我嘗試這樣做:

var test = $('#MyDiv').mouseover() ? 1 : 0; 

,但它不工作。

讓我知道你是否有1-liner建議返回被徘徊的div的名稱。

謝謝。

PS:我已經知道它可以擁有超過1行完成

+0

你想知道鼠標目前在無需增加其元素每個元素的懸停處理程序? –

+0

這是正確的。 – frenchie

回答

2

可以儲存您的標誌jQuery的數據存儲:

$(this).data("mouseover", true); 
if ($(this).data("mouseover")) 
+0

這仍然存儲一些價值;我正在查看是否jQuery讓你確定div的名字被徘徊。看起來不可能。 – frenchie

1

你可以這樣做:

$('#MyDiv').mouseover(function(){ 
    //show/hide other div or any other code 
}) ; 

OR

您可以設置另一個全局變量,告訴你是否鼠標徘徊在MyDiv這樣的:

$('#MyDiv').mouseover(function(){ 
    myDivHovering = true; 
}).mouseout(function() { 
    myDivHovering = false; 
}) ; 
+0

顯示/隱藏在SetTimeout內工作;因此我需要知道時間到的時候鼠標的位置,而不是鼠標進入或離開時的位置。 – frenchie

+0

看到我的更新設置全局變量 – Mrchief

+0

正確,但我希望使它在沒有全局變量的情況下工作(該功能目前已經與全局變量一起工作)。任何方式來確定被徘徊的div的名稱? – frenchie

1

jQuery使用一個callba CK風格來處理事件。您所描述的功能可以實現像這樣:

var mouse_on_mydiv = false; 
$('#MyDiv').hover(function onMouseIn() { 
    mouse_on_mydiv = true; 
    alert(this.id); // => 'MyDiv' 
}, function onMouseOut() { 
    mouse_on_mydiv = false; 
}); 
+0

是的,這已經是我使用全局變量了。我正在尋找刪除全局變量。 – frenchie

+0

我不知道這裏的背景。什麼阻止你移除它?它是否被用於你想要重構的代碼的其他部分? –

+0

全局變量沒有被其他地方使用,一切正常。這只是我想要刪除變量。 – frenchie