由于某些原因,我不能让jQuery菜单同时折叠和隐藏。单独调用折叠或隐藏菜单是有效的,只是不是在同一时间。
为了折叠菜单,我使用了通过the jQuery documentation声明的$(menu).menu("collapseAll", null, true)。
因为隐藏了菜单,我打电话给$(menu).hide(),没什么花哨的。这是the documentation。
这是a JSFiddle of what I'm trying to do。选择一个菜单选项,然后单击“显示菜单”按钮。在此示例中,菜单在大约半秒后显示并折叠。最终,这个菜单将在我的代码中的许多地方使用,所以当菜单在第一次出现后显示给用户时,不要展开到最后一个菜单页面,这一点很重要。
发布于 2015-03-19 02:23:59
这个菜单看起来有一个内置的超时,当你点击一个项目时,你可以看到这一点,当你点击项目时,菜单不会立即折叠。它会立即隐藏,因为您有.hide(),并且它会立即执行。
我唯一能做你想做的事就是
http://jsfiddle.net/u2v2x049/7/
$(function () {
var menu = $("#menu");
menu.menu({
select: function (event, ui) {
$(this).menu("collapseAll", null, true);
setTimeout(function () {
menu.hide();
}, 500);
}
});
$("button").click(function (event) {
menu.show();
});
});所以它会折叠所有的菜单,然后我在500毫秒后隐藏菜单。如果你想的话你可以加到400。我的猜测是菜单可能会检查它的可见性,如果它不可见,那么它就不会正确折叠。我并不真的使用这个UI,这是我能提供给你的全部。
实际上300ms似乎是一个完美的时间,http://jsfiddle.net/u2v2x049/8/
https://stackoverflow.com/questions/29129551
复制相似问题