我正在使用Jquery-ui菜单小部件,我正在尝试获得一些看起来应该非常明显的功能......但我可能会忽略它,或者也许他们在编写时会这样做
我能够轻松地将菜单水平放置,并使子菜单垂直向下...但是,对于我的生活,当我鼠标拖出菜单时,我无法让子菜单崩溃。它只是停留在那里直到我点击其他东西。非常讨厌作为一名设计师,它违背了我的所有敏感性,我看不出它只是挂在那里的理由。
我是否破坏了这个东西,还是我需要添加一些特别的东西? 作为旁注,我一直在摆弄Jquery-ui js几个小时,编辑菜单小部件。我在这里修补:
// DEFAULT FUNCTION:
// Clicks outside of a menu collapse any open menus
this._on( this.document, {
click: function( event ) {
if ( !$( event.target ).closest( ".ui-menu" ).length ) {
this.collapseAll( event );
}
// Reset the mouseHandled flag
this.mouseHandled = false;
},
// I ADDED THIS:
mouseout: function( event ) {
this.collapseAll( event );
}
});
它产生了我想要的行为......有点...... 现在我有斑点鼠标进入检测我的菜单项与附加的子菜单。将实时网站放在菜单仅在某些时间工作的地方并不是很好。有任何想法吗?我是以艰难的方式做错了,还是有些我根本不知道的事情?我不是jQuery的最佳人选,刚刚开始。
我正在使用一个基本上是菜单小部件的jQuery UI演示页面上的示例的增强版本的设置,所以我不认为这是导致问题的我的HTML。
答案 0 :(得分:1)
我遇到了同样的问题并找到了解决方案here。我希望它适合你。
答案 1 :(得分:1)
好的,这只是进行了一些搜索。
我在上一个答案中使用了jplfl的示例作为指南,然后进入jquery-ui.js文件,搜索与菜单有关的任何函数。我找到第9715行,其中mouseleave绑定到“collapseAll”而不是调用实际折叠菜单的函数。我改成了这个:
mouseleave: function( event ){
this.collapseAll( event, true );
},
现在它有效。
所以,是的。 jplfl的答案肯定是有帮助的,但我认为这可能是相关的,因为它更详细一些。
答案 2 :(得分:0)
亚伦: 只需搜索'ui.menu'并向下滚动直至看到 mouseleave:“collapseAll” 对我来说,它是11507(jquery-ui-1.10.3)
答案 3 :(得分:0)
我不确定这是否有效:
$(document).ready(function() {
$(“#menu”).menu({
mouseleave: function( event ){ this.collapseAll( event, true ); }
});
但我确信还有另一种选择。 您可以查看此link: