0

Web サイトのメニューを作成しようとしています。これには jQuery を使用していますが、少し問題が発生しました。

私はこの構造を持っています

<div class="menuTitle menuDiv menuNode" id="menuNode_<?=$row_menu["id"]?>">
    <a href="<?=$rt?>" class="menuAnchor" onclick="return registerMenuClick($(this).parent())">
        <span><?=$nodeName?></span>
    </a>
</div>

<div class="menuSelect" id="menuSelect_<?=$row_menu["id"]?>" align="center"><?=$nodeName?></div>

そしてjQueryでは、私は持っています

$(document).ready(function(){
    $(".menuNode, .menuSelect").live("mouseover",function(event){
    MenuBar.selectedID = $(this).attr("id").replace("menuNode_","").replace("menuSelect_","");
    MenuBar.showThisBranch();
  }).live("mouseout",function(event){
    MenuBar.selectedID = $(this).attr("id").replace("menuNode_","").replace("menuSelect_","");
    MenuBar.hideThisBranch();
  });
})

ユーザーが menuNode にカーソルを合わせると、menuSelect が表示されるはずですが (表示されます)、menuAnchor またはスパンにカーソルを合わせると、mouseout イベントが発生し、次に mouseover イベントが発生します。

したがって、たとえば、マウスを menuNode の上に置き、スパンに移動してから menuNode に移動すると、mouseover イベントが 3 回発生します。以前にクリック イベントでこの動作が発生したことがありますが、これを解決するために使用された方法は、この問題では機能しないようです。

助言がありますか?

4

1 に答える 1

1

@ Beetroot-Beetrootが提案したように、mouseenter / mouseleaveは、timeOutと組み合わせてmenuNodeからmenuSelectに変更するのに役立ちました(Enterで300ミリ秒、Leaveで500ミリ秒)。

于 2012-09-06T00:31:02.983 に答える