Javascript JQueryui菜单将无法正确定位
我正在尝试使用JQueryUI菜单小部件动态创建菜单 问题是菜单没有准确地定位自己。 它(菜单)似乎决定总是出现在html正文的底部附近 第一次单击我的菜单按钮时,单击处理程序,只有第二次单击菜单按钮处理程序时,它才会出现在适当的位置,位于我的菜单按钮的底部。那么,如何让我的菜单忠实于我想要的菜单按钮呢Javascript JQueryui菜单将无法正确定位,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,我正在尝试使用JQueryUI菜单小部件动态创建菜单 问题是菜单没有准确地定位自己。 它(菜单)似乎决定总是出现在html正文的底部附近 第一次单击我的菜单按钮时,单击处理程序,只有第二次单击菜单按钮处理程序时,它才会出现在适当的位置,位于我的菜单按钮的底部。那么,如何让我的菜单忠实于我想要的菜单按钮呢 $(文档).ready(函数(){ $(“#myTabs”).tabs(); var$replaceMenu=$(“”+ “更换电流”“+ “全部替换”+ “”)。菜单(); var r
$(文档).ready(函数(){
$(“#myTabs”).tabs();
var$replaceMenu=$(“”+
“- 更换电流”
“+
“- 全部替换”+
“
”)。菜单();
var replaceMenuHandler=函数(事件){
$replaceMenu.position({
我的:“左上”,
在“左下角”,
作者:这个
})
.on(“菜单选择”,函数(事件,用户界面){
var selectedReplaceOption=ui.item.text();
console.log(SelectedReplace选项);
$replaceMenu.hide();
}).show();
event.stopPropagation();
};
$replaceMenu.appendTo(“#testMenu”).hide();
$(“#测试菜单”)。在(“单击”,替换菜单手柄);
});
您可能只需要为
设置样式并将其设置为位置:相对代码>
因此,在CSS中使用类似的内容:
#testMenu {
position: relative;
}
您的.ui菜单.ui菜单项a还需要:
.ui-menu .ui-menu-item a {
white-space: nowrap;
text-align: left;
}
…那就好看了 您可能只需要为
设置样式并将其设置为位置:相对代码>
因此,在CSS中使用类似的内容:
#testMenu {
position: relative;
}
您的.ui菜单.ui菜单项a还需要:
.ui-menu .ui-menu-item a {
white-space: nowrap;
text-align: left;
}
…那就好看了 主要问题是,在菜单的单击处理程序中设置位置(请参见replaceMenuHandler)不是一件好事。一旦我从单击处理程序中删除了menu.position调用,并且仅在最初创建菜单时才调用它,代码就开始按照我的预期工作
$(文档).ready(函数(){
$(“#myTabs”).tabs();
var$replacemon=$(
“”+
“”+
“”+
“
”)
.菜单()
.附件(“正文”)
.职位({
我的:“左上”,
在“左下角”,
“测试菜单”
})
.on(“菜单选择”,函数(事件,用户界面){
var selectedReplaceOption=ui.item.text();
console.log(SelectedReplace选项);
$replaceMenu.hide();
});
var replaceMenuHandler=函数(事件){
$replaceMenu.show();
};
$(“#测试菜单”)。在(“单击”,替换菜单手柄);
});
主要问题是在菜单的单击处理程序中设置位置(请参阅replaceMenuHandler)不是一件好事。一旦我从单击处理程序中删除了menu.position调用,并且仅在最初创建菜单时才调用它,代码就开始按照我的预期工作
$(文档).ready(函数(){
$(“#myTabs”).tabs();
var$replacemon=$(
“”+
“”+
“”+
“
”)
.菜单()
.附件(“正文”)
.职位({
我的:“左上”,
在“左下角”,
“测试菜单”
})
.on(“菜单选择”,函数(事件,用户界面){
var selectedReplaceOption=ui.item.text();
console.log(SelectedReplace选项);
$replaceMenu.hide();
});
var replaceMenuHandler=函数(事件){
$replaceMenu.show();
};
$(“#测试菜单”)。在(“单击”,替换菜单手柄);
});
我不知道是不是同样的问题。。。但我在jQueryUI Autocomplete上也有同样的问题。之所以会发生这种情况,是因为jQueryUI使用默认的html元素来附加其div。如果元素不存在,它将附加到html正文的末尾。在这里:我不知道这是否是同一个问题。。。但我在jQueryUI Autocomplete上也有同样的问题。之所以会发生这种情况,是因为jQueryUI使用默认的html元素来附加其div。如果元素不存在,它将附加到html正文的末尾。截至此处: