我有一个动态构建的Jquery菜单, 每个SubMenu列表项都包含一个Anchor标签和Checkbox。 单击锚标记时,我会动态添加一个弹出窗口,其中包含一个文本区域。
问题是当我点击复选框然后尝试在文本框内部(弹出窗口内)键入内容时子菜单会折叠。 只有在单击复选框然后单击弹出窗口时才会发生这种情况。
如果在复选框之前单击了弹出窗口,我可以使用弹出窗口键入文本框,而不隐藏子菜单。
我已经使用过了
_closeOnDocumentClick: function (event) {
return false;
},
select: function (event) {
// TODO: It should never be possible to not have an active item at this
// point, but the tests don't trigger mouseenter before click.
this.active = this.active || $(event.target).closest(".ui-menu-item");
var ui = { item: this.active };
if (!this.active.has(".ui-menu").length) {
this.collapseAll(event, false);// i have passed false to prevent collapse
}
this._trigger("select", event, ui);
}
防止子菜单隐藏。
除了我已经解释过的复选框场景外,这种方法很有效。
另外,我尝试了stopPropogation
和preventDefaults
。
主要UL:
<ul style="width: 250px; display: block; top: 0px; left: 248.75px;" class="ui-menu ui-widget ui-widget-content ui-front" role="menu" aria-expanded="true" aria-labelledby="zzzz" />
李先生
<li class="ui-menu-item" id="ui-id-4" tabindex="-1" role="menuitem"><div class="row"><div class="col-sm-12 "><div class="col-sm-8 "><span class="lbl"> Loss of Vision</span> <a class="badge badge-info" id="liId" style="background-color: rgb(221, 221, 221) !important; cursor: pointer;"><i style="vertical-align: middle;" class="fa fa-comment-o "></i></a></div><div class="col-sm-1 "><div class="checkbox "><label> <input type="checkbox" name="name" id="name" data-displayvalue="Hxxxx" class="ace" data-classattr="classattr" data-originalid="doid" data-originalvalue="originalval"> <span class="lbl"></span> </label></div></div><div class="col-sm-1 "><div class="checkbox"><label> <input type="checkbox" name="Ename" id="id2" data-displayvalue="xxx" class="ace" data-classattr="xxx" data-originalid="oid" data-originalvalue="xxxx"> <span class="lbl"></span> </label></div></div></div></div></li>