首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery事件处理/传播/冒泡?

jQuery事件处理/传播/冒泡?
EN

Stack Overflow用户
提问于 2012-09-06 07:14:12
回答 1查看 203关注 0票数 0

我正在尝试为一个网站创建一个菜单,我正在使用jQuery来做这件事,我遇到了一个小问题。

我有这样的结构

代码语言:javascript
复制
<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中,我有

代码语言:javascript
复制
$(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上时,应该显示鼠标,但如果我将鼠标悬停在menuAnchor或跨度上,它会触发mouseout事件,然后触发mouseover事件。

因此,假设我将鼠标放在menuNode上,然后移动到跨度,然后再次移到menuNode,它将触发mouseover事件3次。我以前在点击事件上有过这种行为,但用来解决这个问题的方法似乎对这个问题不起作用。

有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-06 08:31:03

正如@Beetroot-Beetroot建议的那样,mouseenter/mouseleave提供了帮助,加上一个从menuNode更改为menuSelect的TimeOut (进入时为300毫秒,离开时为500毫秒)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12291018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档