当鼠标悬停在孩子动态创建的地方时,防止onmouseout
prevent onmouseout when mouseover child where child created dynamically
我读过很多关于类似主题的帖子,所有这些都很好,我在阅读它们时学到了很多,但我仍然无法使我的代码令人满意地工作。
我有一个菜单栏,里面有很多按钮。当我将鼠标悬停在其中3个按钮上时,一些javascript会为每个按钮动态创建一个下拉菜单。
当我把鼠标从按钮上移开或完全从菜单栏上移开时,我会清除下拉菜单。
显然,当我将鼠标悬停在下拉列表上时,我不希望此下拉列表被清除。
当然,onmouseout事件会触发并清除此菜单。
我可以看到用于类似问题的各种方法。但这些都不起作用,我认为这是因为当监听器被分配给父对象时,div和dl创建的位置显然不存在。因此,尽管添加到dom的html将下拉列表放在侦听器的范围内,但它仍然假设发生了mouseout事件。
我试图通过为成功添加的动态内容添加侦听器来进行更正,但我仍然无法阻止mouseout在鼠标悬停之前触发。
设置一个计时器,并在生成的菜单上用鼠标清除它。
document.getElementById("menu").onmouseout = function(e){
window.to = setTimeout(function(){
// remove the submenu
},20)
}
document.getElementById("submenu").onmouseover = function(e){
clearInterval(window.to)
}
相关文章:
- Javascript在处理函数时防止单击
- 如何在使用jQuery.html()时防止javascript执行
- 如何在拖动绑定到“mousedowd,mousemove,mouseup”的锚点时防止重定向
- 如何在重新绘制画布时防止形状的痕迹-Javascript
- 延迟加载背景图像时防止双重请求
- 如何在使用“显示和隐藏锚定标记”时防止滚动页面
- 在可滚动容器上拖动时防止自动滚动
- 如何在选项卡或浏览器以角度关闭时防止Default()
- 在改变方向时防止出现白边
- 如何在提交时防止粘性复选框重置?(一页上有多个表格)
- 在进行动画时防止多次单击(stopPropagation&:animated)
- Javascript:在调用服务器时防止浏览器冻结
- 在添加固定位置时防止页面滚动到顶
- 在动态添加/删除HTML时防止内存泄漏
- 在使用 Javascript Query Builder 时防止 Rails 中的 SQL 注入
- 如何使用Turbolinks.visit(path)时防止冒泡事件
- 按住 shift 键时防止按键
- 如何在未单击单选按钮时防止表单提交
- 如何在使用 Angularjs 时防止重新呈现整个 html 表
- 如何在使用 SailsJS + AngularJS 时防止模板暴露