我的应用程序中有一个 MenuBar,需要根据某些条件禁用它。setEnabled(boolean) 方法在 GWT MenuBar 上不可用,因此没有直接的方法可以满足此要求。
例如:如果您查看NestedAnchor.setEnabled(boolean enabled)
它会禁用该小部件上的事件并添加样式。我想在未触发单击事件以显示弹出窗口的 MenuBar 上执行相同的行为。
还尝试使用jquery添加disabled
attr,仍然没有成功
菜单栏是菜单项的容器。容器不支持禁用属性。所以 yohu 必须手动遍历菜单项列表以禁用它们中的每一个。下面的代码片段通过向菜单栏添加 setEnable 方法来做到这一点 -
MenuBar menuBar = new MenuBar()
{
public void setEnable(boolean enableFl)
{
for( MenuItem item : getItems() )
{
item.setEnable( enableFl );
}
}
};
你可以让你的菜单栏不可见
menuBar.setVisible(false);
当您想要启用菜单栏时,然后 menuBar.setVisible(true);
或者
如果要禁用样式,请在 .css 文件中添加 styleDisable 并将样式设置为
menuBar.setStyleName(styleDisable);
then check style
if(menuBar.getStyleName().equals("styleDisable")){
// write code here
}
这将达到目的:menuBar.unsinkEvents(Event.MOUSEEVENTS | Event.ONCLICK | Event.FOCUSEVENTS | Event.KEYEVENTS);
您可以使用以下Api
DOM.setElementPropertyBoolean(menubar.getElement(), "disabled", !enabled);