我正在使用JQuery selectmenu,并希望在鼠标悬停时将其打开并关闭它。
这就是我的尝试:
jQuery('.selectbox')
.selectmenu()
.selectmenu('widget').hover(function() { jQuery(this).selectmenu('open'); });
错误:
jquery-1.12.3.min.js:2 Uncaught Error: cannot call methods on
selectmenu prior to initialization; attempted to call method 'open'
但是我无法以这种方式访问selectmenu来打开它。另外,当鼠标在菜单项上移动时,我想我需要保持打开状态?
答案 0 :(得分:1)
修改的
事实证明这无论如何都会提供糟糕的用户体验,所以在使用此代码之前请考虑一下: - )
我能够使用以下功能创建自定义小部件:
_leaveWidget: function(event) {
var target = event.toElement || event.relatedTarget || event.target;
if (!(
jQuery.contains(this.button.get(0), target) ||
jQuery(this.button.get(0)).is(target) ||
jQuery.contains(this.menu.get(0), target) ||
jQuery(this.menu.get(0)).is(target)
)) {
this.close();
}
},
_create: function () {
this._super();
var that = this;
this._on(this.button, {
mouseenter: function (event) {
that.open();
},
mouseout: that._leaveWidget
});
this._on(this.menu, {
mouseout: that._leaveWidget
});
},
<强>更新强>
以下适用于Firefox,Chrome和IE 11(较低的IE未测试)
{{1}}