如何在鼠标悬停上显示/隐藏div?

问题描述:

可能重复:
How to show/hide a div on mouseover using jquery?如何在鼠标悬停上显示/隐藏div?

我有这样一个div:

我想有显示的child DIV每当有人在parent移动他们的鼠标div,当他移开鼠标时,隐藏父div。

但是,如果我这样做:

$("#parent").mouseover(toggle); 
$("#parent").mouseout(toggle); 
function toggle() 
{ 
    console.log('here'); 
    $("#child").toggle(); 
} 

然后,两个事件似乎每次我提出我的鼠标移到#parent div来获得所谓的两次。我怎样才能达到我想要的?

+0

我只看到它在鼠标悬停时发生一次,而且一次在鼠标外面:http://jsfiddle.net/6MWgy/你确定你没有把事件连上两次? – Jamiec 2012-08-07 09:29:39

$("#parent").hover(
    function(){ 
     $("#child").show(); 

    }, 
    function(){ 
     $("#child").hide(); 
    } 
) 

在这种情况下,您不应该使用切换。如果你总是想隐藏鼠标移开时,并显示在鼠标悬停,然后将它们定义为这样的:)

$("#parent").mouseover(function() { 
    $("#child").fadeIn(); // or .show() for no fading 
}); 

$("#parent").mouseout(function() { 
    $("#child").fadeOut(); // or .hide() for no fading 
}); 

如何添加CSS?

#parent #child {显示:无;}

#parent:悬停#child {显示:块;}

<div id="parent"> 
     foo 
      <div id="child" > 
      hidden 
      </div> 
    </div> 
+0

没有脚本技术 – 2012-08-07 09:32:34

+0

hidden
你应该删除显示:隐藏在dom – 2012-08-07 09:35:05

可以尝试.hover()之类这,

$('#divid').hover(
function(){ 
//mouseenter function 
}, 
function(){ 
//mouseleave function 
} 
); 

不要使用切换功能!

尝试这样:

$("#parent").hover(function(){ 
    $("#child").show(); 
}, function(){ 
    $("#child").hide(); 

} )

这也许应该工作!

+1

为什么添加一个重复的答案 - upvote原来... – ManseUK 2012-08-07 09:32:35

+1

对不起,没有看到!必须已经发布,而我键入我的答案..肯定会upvote上面的一个! :) – Mak 2012-08-07 09:33:44

短:

$("#parent").hover(function() { 
    $("#child").toggle(); 
});​ 

Demo.

注意:您可以用fadeToggleslideToggle subtitute toggle

你应该使用这样的事情:

$("#parent").mouseover(function(){ 
    $('#child').show(); 
}); 
$("#parent").mouseout(function(){ 
    $('#child').hide(); 
});​ 

的jsfiddle例如:http://jsfiddle.net/phcwW/

+0

哇,我有时会减慢StackOverflow有时... – Marcus 2012-08-07 09:34:24

<div id="parent" onmouseover="callMouseOver()" onmouseout="callMouseOut()"> 
    foo 
     <div id="child" style="display:none;"> 
     hidden 
     </div> 
</div> 

的js方法:

function callMouseOver(){ 
    document.getElementById("child").style.display = "inline"; 
} 

function callMouseOut(){  
    document.getElementById("child").style.display = "none";  
}