2011-09-08 16 views
0

我有一個標籤,當鼠標進入圖像時出現在圖像上。當我想繼續使用鼠標的鏈接時,鏈接邏輯消失,因爲我使用.mouseleave()函數來隱藏鼠標離開圖像時的鏈接。如何使用jquery做一個if條件測試?

我想爲.mouseleave()如下做條件測試:

if(!$("#linkId").mouseenter()){ 
//... 
} 

我試着用.沒有()mousenter(),而不是!

但它不工作..。當我的鏈接進入,它保持它它從未離開......

謝謝

山姆

+0

那你想測試?你期望'.mouseenter()'返回什麼? – deceze

+1

我認爲你想要做mouseover來代替。那麼你不會失去焦點 –

+1

另外,請記住,這些都是事件。當它們發生時,它們不會返回真/假,它們只是做一些不會返回的東西。 –

回答

3

將這兩個鏈接和圖像放在一個容器中,並將事件處理程序分配給容器。您可以使用CSS定位鏈接。

由於鏈接和圖像是父級的子級,因此當您將鼠標懸停在鏈接上時,不會觸發mouseleave事件。

實施例:

HTML:

<div id="parent"> 
    <div id="image"></div> <!-- the div is just an example --> 
    <a id="link" href="#">Some link</a> 
</div> 

CSS:

#parent { 
    position: relative; 
} 

/* used div for demo only */ 
#image { 
    width: 100px; 
    height: 100px; 
    border: 1px solid black; 
} 

#link { 
    position: absolute; 
    top: 0; 
    left: 0; 
    display: none; 
} 

JavaScript的:

$('#parent').hover(function() { 
    $('#link').toggle(); 
}); 

DEMO


$("#linkId").mouseenter()沒有做你認爲它做的事。它不測試鼠標是否在鏈接上,它會在鏈接上生成一個mouseenter事件。

+0

謝謝,但我不能這樣做,因爲需要是獨立的,因爲它是由一個插件爲了創建一個幻燈片放映(plg spacegallery)而恢復的。如果我這樣做,PLG不能正常工作。這個插件不允許我在圖片上添加鏈接,這是我正在嘗試做的。我需要這個插件,因爲我的老闆喜歡這種效果......並且我沒有找到另一個插件,它可以通過鏈接實現相同的效果.... – Samuel

0

使用hover(),並將其綁定到鏈接和圖像,或者在鏈接元素中包含圖像。

<img src="example.gif" alt="" id="showme" style="display:none" /> 
<a href="#" id="hoverme">Hover me</a> 

<script type="text/javascript"> 
    $('#hoverme,#showme').hover(function(){ 
     $('#showme').toggle(); 
    }); 
</script>