使用MaterialButton,我试图在屏幕上显示日历窗格。我的代码是这样的:
@UiField
MaterialDatePicker editDateCtrl;
@UiField
MaterialButton addDateCtrl;
@UiHandler("addDateCtrl")
void onClick(ClickEvent ev) {
// GQuery.console.log(GQuery.$(ev.getSource()).siblings(".input-field"));
// GQuery.$(ev.getSource()).siblings(".input-field").first().find("input").click();
// GQuery.$(this.editDateCtrl.getElement());
// GQuery.$("#gwt-debug-actionBtn").click();
editDateCtrl.fireEvent(new FocusEvent() {});
}我尝试使用焦点事件,单击事件,但什么都不起作用。使用普通JavaScript (jQuery)获取元素并调用obj.click()/obj.focus()也不会产生任何结果。这个控件的API甚至不包含方法show()或类似的东西(不是在我当前使用的版本中)。
发布于 2018-06-19 21:10:52
我不得不使用GQuery/JSNI。MaterialDatePicker包含一个input元素,该元素的属性aria-owns由我想要显示的日历弹出窗口的id赋值。为了使弹出窗口出现,你需要给它添加一些样式。
代码如下:
String pickerId = GQuery.$(editDateCtrl).find("input").attr("aria-owns");
GQuery.$("#" + pickerId).addClass("picker--focused picker--opened");
GQuery.$("#" + pickerId).attr("aria-hidden", false);https://stackoverflow.com/questions/45186821
复制相似问题