2014-02-24 145 views
1

我正在爲我的網站實施懸浮卡。懸停卡片顯示在任何用戶名上盤旋。我使用mouseenter事件來加載懸停卡和鼠標來隱藏它。實施懸停卡鼠標事件

//HTML 
<span class="hover_div"> 
    <a class="show_hovercard" user_name="gaurav">Gaurav</a> 
</span> 

// JavaScript 
$('.show_hovercard').on({ 
    'mouseenter': function(e) { 
     var $current_node = $(this); 
     var $parent = $current_node.parent(); 
     var markup = "<p class='hovercard'>Gaurav's hovercard</p>"; 
     $parent.append(markup); 
    } 
}); 

$('.hover_div').on({ 
    'mouseout': function(e) { 
     var $hovercard = $(this).find('.hovercard'); 
     $hovercard.remove(); 
    } 
}); 

class .hovercard是絕對定位的。

我希望懸停卡從用戶名移動到卡時不會隱藏。但是當我從用戶名移動到懸停卡時,懸停卡正在隱藏。應該做什麼?

這裏是工作的jsfiddle: http://jsfiddle.net/L6D47/1

+0

請提供一個工作示例包括CSS的jsfiddle或東西一樣,讓人幫你這麼容易 – GNi33

+0

我添加了一個鏈接到工作的jsfiddle – dotgc

回答

1

我認爲你必須在你的JavaScript語法錯誤。

代碼:

$('.hover_div').on({ 
    '.mouseout': function(e) { 
     var $hovercard = $(this).find('.hovercard'); 
     $hovercard.remove(); 
    } 
}); 

應該是:

$('.hover_div').on({ 
    'mouseout': function(e) { 
     var $hovercard = $(this).find('.hovercard'); 
     $hovercard.remove(); 
    } 
}); 

更新: 我已經成功地解決您的問題。將p元素更改爲div元素,因爲p元素具有餘量並且不一致。然後將鼠標移至mouseleave。這裏是工作提琴:

http://jsfiddle.net/NLXkV/6/

+0

感謝您的答覆奧維迪烏。這是一個錯字。糾正。你可以請幫忙 – dotgc

+0

檢查我的編輯。它應該解決你的問題。 –

+0

但我想保留餘量。此外,是否有可能延遲發射鼠標離開事件。如果只有鼠標離開hover_div的時間超過一秒鐘,才能隱藏懸停卡。 – dotgc