为什么启用后jQueryUI菜单会立即返回错误的项目?

时间:2015-02-13 19:08:26

标签: jquery-ui

示例代码:

http://jsfiddle.net/mrtidy/w3zx0n4o/

这是关键位:

<ul id="testmenu">
    <li data-menu-id="edit"><a href="#">edit</a></li>
    <li class="ui-state-disabled" data-menu-id="delete"><a href="#">delete</a></li>
</ul>

......然后是JS ......

$("#testmenu").menu();
$("#testmenu").on("menuselect", function(event, ui) {
    $("#feedback").text("selected " + ui.item.data("menuId"));
});

// some event causes an element to be enabled
$('[data-menu-id="delete"]').removeClass("ui-state-disabled");

我已经验证了FF和Chrome中的行为。

如果您在启用后立即点击删除,则会看到&#34;选择编辑&#34;但我希望看到&#34;选择删除&#34;。为什么会发生这种情况,我能做些什么来改善这一点?

更新:我已经找到了更多有关此内容的详细信息。这是一个更具体的复制品。

  1. 打开jsfiddle链接
  2. 将鼠标放在编辑菜单选项
  3. 的顶部
  4. 使用键盘刷新页面(例如F5或Ctrl-r)
  5. 一旦页面显示,您应该看到编辑获得“活跃”状态。式
  6. 将鼠标移动到指向要删除的位置(在启用之前)
  7. 启用删除后,您可以点击删除,然后查看“已选择编辑”
  8. 你不再需要赶紧进入第6步 - 只要你不要移动鼠标过多,那么编辑仍然是活动项目,当你点击删除它时,我会认为你选择了编辑。

0 个答案:

没有答案