0

HTML:

<ul class="navigate">  
<li>  
    <a title="Demo01" href="###">Demo01</a>  
    <ol>  
        <li><a title="Demo01Children01" href="###">Demo01Children01</a></li>  
        <li><a title="Demo01Children02" href="###">Demo01Children01</a></li>  
    </ol>  
</li>  
<li><a title="Demo02" href="###">Demo02</a></li>  
</ul>

Javascript:

$("ul.navigate>li").mouseenter(function(){  
  $(this).children("a").slideDown();  
  console.log("hover");  
}).mouseleave(function(){   
  $(this).children("a").slideUp();  
  console.log("out");  
});  

Firefox で html と JS を実行すると、マウスを毎回ホバーすると、Firefox の firebug で「ホバー、アウト、ホバー」という出力が表示されます。実は、「ホバー」を出力するだけが私の目的ではありません。問題を解決するのに役立つ人はいますか?

4

3 に答える 3

0

マークアップを変更せずに、JavaScript を次のように少し変更しました。

$("ul.navigate > li").mouseenter(function(){  
    $(this).find("li").slideDown();  
    console.log("hover");  
}).mouseleave(function(){   
    $(this).find("li").slideUp();  
    console.log("out");  
});  

display: noneお勧め、お子様メニューにも適用します

デモ: http://jsfiddle.net/C2nVz/1/

注:list-style-type: none Ed が示唆するように、デモには も含まれており、複数mouseovermouseleaveイベントが発生します。

于 2013-10-22T10:38:47.347 に答える