Events 转到项目列表时,在dijit.form.Select上触发MouseOut事件

Events 转到项目列表时,在dijit.form.Select上触发MouseOut事件,events,dojo,Events,Dojo,我决定采纳下面的建议,把我的问题修改得更简单 我遇到的问题是我有一个dijit.form。在自定义dijit中选择dijit,该自定义dijit在mouseover上显示,在mouseout上隐藏。这是由于打开选择并转到项目列表时触发onMouseOut事件造成的。这会导致onMouseOut事件触发并关闭我的自定义dijit 我能想到的最好的办法是,Select继承自dijit。_HasDropDown,下拉菜单实际上是直接在body节点下创建的,而不是在dijit内创建的,因此它认为当鼠标移

我决定采纳下面的建议,把我的问题修改得更简单

我遇到的问题是我有一个
dijit.form。在自定义dijit中选择
dijit,该自定义dijit在mouseover上显示,在mouseout上隐藏。这是由于打开选择并转到项目列表时触发onMouseOut事件造成的。这会导致onMouseOut事件触发并关闭我的自定义dijit

我能想到的最好的办法是,Select继承自dijit。_HasDropDown
,下拉菜单实际上是直接在body节点下创建的,而不是在dijit内创建的,因此它认为当鼠标移动到该部分时,它已经离开并触发onMouseOut


这真的应该是我做错事的方式吗?我真的很茫然,不知道如何让这个工作,希望这是更好的,将吸引更多的意见

没错,onMouseOut事件发生在您的自定义小部件上,因为Select的下拉列表与dijit中的所有下拉列表一样,直接连接到

一种方法是:焦点管理器将设置此选项。当小部件及其子部件作为一个单元获得/失去焦点时,聚焦小部件。因此,当这个.focused==true时,您甚至可以忽略小部件上的模糊


不过,一个复杂的问题是,当下拉列表扩展到自定义小部件的底部时,该怎么办。在这种情况下,单击下拉菜单将关闭下拉菜单,从而将光标放在自定义小部件的外部,但不会出现onmouseout事件,因为光标没有穿过小部件的边界。也许这正是你想要的。

我认为你应该改进你的调查,了解你真正的问题所在,而不是粘贴小部件的完整代码,然后只发布有趣的部分。我们甚至不知道你如何在你的页面上使用这个小部件。。。