2010-07-19 116 views
0
<tr onmouseover="$('#actions').show();" onmouseout="$('#actions').hide();" > 
    <td> 
     <a onclick="showContacts();">Group Name</a> 
    </td> 
    <td> 
     <span id="actions" style="display:none;"> 
      <img src="../images/Delete-icon.png" onclick="del();"/> 
      <img src="../images/add-16.png" onclick="loadpage('contacts.php');" /> 
      <img src="../images/mail.png" onclick="send();" /> 
     </span> 
    </td> 
</tr> 

這是我的代碼。我試圖在<tr>徘徊時在第二個<td>中顯示3個圖像。在將鼠標懸停在第一個<td>的文本上時,圖像出現,但在鼠標離開文本時消失。 這隻發生在我的FF(v3.6)中,但在IE和Chrome中正常工作。 有人可以幫我解決這個問題嗎?Firefox中的JQuery不兼容問題(可能)。在Chrome中工作

回答

5

最有可能的,因爲只要光標離開與文本的td元素,mouseout事件引發,泡到父tr元素的處理有。

這樣做的jQuery的方式,不要在你的HTML代碼中附加事件處理程序。

$(function() { 
    $('tr').hover(function() { // <- select the right tr here, by e.g. giving it an ID 
     $('#actions').toggle(); 
    }); 
} 

參考文獻:.hover().toggle()

相同的其他元素。您的代碼將更清潔,因爲視圖(HTML代碼)和邏輯(JavaScript)是分開的。


還要注意,標識必須是一個HTML文檔中唯一的,所以你不能有ID action另一個元素。我是這樣說的,因爲當你的代碼顯示一個表格行時,它看起來像你有其他行#action元素。如果是這樣,請將其設置爲一個班級並相應地調整選擇器。

+1

值得注意的是,這裏的主要區別在於使用['mouseleave'](http://api.jquery.com/mouseleave/)而不是['mouseout'](http://api.jquery)。 com/mouseout /)event :) – 2010-07-19 12:15:16

1

來到不明顯的光明之路javascript。我們都有氣球和東西在這裏,它很有趣! :)

嚴肅地說,想一想,做所有不顯眼的事情,而不是使用內聯事件處理程序。 也許你所有的問題都被吹走了。

+0

+1對於氣球! – Samuel 2010-07-19 12:14:42

相關問題