gpt4 book ai didi

javascript - 使用 MouseOver 事件控制 dijit.MenuBar

转载 作者:行者123 更新时间:2023-11-30 18:37:26 25 4
gpt4 key购买 nike

在 Dojo 中,是否可以配置 dijit.MenuBar 以便菜单由 MouseOver 和 MouseOut 事件触发?实际上这个行为已经可用,但它是由初始或连续的鼠标点击事件打开或关闭的 - 所以最初,MouseOver 不会导致菜单弹出,但如果用户点击菜单项,菜单栏就会响应 MouseOver 事件.连续点击鼠标将再次关闭此行为。

我想要的是基于鼠标悬停事件弹出的菜单和子菜单,不受点击事件的干扰。请在 http://dojotoolkit.org/reference-guide/dijit/MenuBar.html 查看示例明白我的意思。

最佳答案

你的问题激起了我的兴趣,足以使我成为 working solution .

我检查了 dijit/Menu.js 中的 dijit._MenuBase 源代码,显然有一个 this.isActive 标志在继续之前进行了检查。所以我创建了一个子类,它只是预先将这个标志设置为 true:

_ActivateOnMouseoverMixin = dojo.declare(null, {
onItemHover: function(item){
if(!this.isActive){
this._markActive();
}
this.inherited(arguments);
}
});

ActiveMenuBar = dojo.declare([dijit.MenuBar, _ActivateOnMouseoverMixin], {});

作为奖励,您还可以使用 popupDelay 变量修改延迟(我在示例中将其更改为更快)


我不知道是否有另一种更明智的方法来做同样的事情。

关于javascript - 使用 MouseOver 事件控制 dijit.MenuBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7850768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com