2010-06-10 83 views
2

我試圖實現類似於你在Wordpress後端的東西,當你將鼠標懸停在帖子表中的一行上時,它會顯示編輯,垃圾和預覽鏈接。jQuery追加懸停被調用兩次

但是,當我嘗試這樣做時,它會將鏈接追加兩次,這是有點問題。我讀到懸停火災在懸停在鍍鉻物上時關閉了兩次,但在歌劇中嘗試過,並且發生了相同的錯誤,所以我不認爲這是問題所在。

Here是它的一個演示。

這裏是代碼

// Table row hover displays links 

$('table.tablesorter tbody tr').hover( 
    function() { // mouseover 
      $(this).children('td:nth-child(2)').append('<p class="links"><a>Edit</a><a>Preview</a><a>Delete</a></p>'); 
    }, 
    function() { // mouseout 
      $(this).children('td:nth-child(2)').find('p.links').remove(); 
    } 
    ); 

你可以看到爲什麼它增加了鏈接,而不是一次兩次?

+0

它發生在Firefox太多。不知道爲什麼,儘管... – 2010-06-10 15:48:31

回答

3

您已經包括js/custom.jquery.js兩次。一旦進入head並且在body之後關閉。與jquery

+0

哦,男人,我很健忘。我將腳本添加到每個頁面的底部,但是忘記將它們從頂部刪除,除了第一頁我做了>。> 感謝您挑選那個男人,會讓我困惑不已 – Qwibble 2010-06-10 15:56:43

2

它沒有回答你的問題,但是當鼠標不在時,你可以隱藏你的<p>,並在鼠標結束時顯示它。

2

在mouseover/mouseout上創建元素在瀏覽器上工作更多,然後創建這些元素(已在display:none;的標記中)並顯示/隱藏它們。您的鼠標懸停及移出可能是BOTH發射,它無法找到要刪除的元素,並繼續增加它..

$('table.tablesorter tbody tr').hover( 
    function() { // mouseover 
      $(this).find('.myControls').fadeIn(); 
    }, 
    function() { // mouseout 
      $(this).find('.myControls').fadeOut(); 
    } 
    ); 
+0

因此,在表格的每一行中都有鏈接,默認情況下隱藏它們,然後將鼠標懸停在其行上時顯示它可能是一個更好的主意? – Qwibble 2010-06-10 15:48:55

+0

現在你在說話;) – 2010-06-10 15:59:12

0

,你還是要檢查一下你得到的同一對象或不

例如:

$('#updateCart').on('mouseenter', function (event) { 
     if (event.handled !== true) { ..... 
        //Put your code in here 
      } 
}