【发布时间】:2020-12-20 01:28:04
【问题描述】:
我正在尝试创建一个动态子菜单。例如,顶级项目是加载和编辑。每当菜单获得焦点时,都会调用一个 get JSON,并使用结果来填充加载菜单项下的可能加载项。但是,选择事件处理程序的 ui 参数似乎不再对应于单击的项目,调用 ui.item.text() 会将整个文本返回到子菜单。
HTML:
...
<ul id="menu">
<li><div>load</div><ul id="load"></ul></li>
<li><div>edit</div></li>
</ul>
...
javascript:
var load_populate = function ( json ) {
var ul = $( "#load" );
ul.empty();
for ( let item of json ) {
ul.append ( $( "<li>" ).append ( $( "<div>" ).text ( item.name ) ) );
}
};
var menu_focus = function ( event, ui ) {
$.getJSON ( load_options_url )
.done ( load_populate );
};
var menu_select = function ( event, ui ) {
console.log ( ui.item.text() );
};
$( "#menu" ).menu ({
"focus" : menu_focus,
"select" : menu_select
});
单击加载子菜单日志中的项目
loaditem1item2item3等
刷新菜单不起作用。
我该怎么做?
【问题讨论】:
-
欢迎来到 Stack Overflow。我看不到在哪里添加了新项目或
click事件是如何关联的。请提供一个最小的、可重现的示例:stackoverflow.com/help/minimal-reproducible-example