我有一个来自GWTBootstrap的GWT生成的手风琴元素,它产生类似于下面的html:
<div class="accordion" id="gwt-uid-1234">
<div class="accordion-group" id="test">
<div class="accordion-heading">Header1</div>
...
</div>
</div>
我希望复制这个jquery调用,以便删除外部的accordion元素,而不删除它的内容。
$('#test').unwrap();
换句话说,我想关闭另一个手风琴打开时自动打开或关闭的Accordion功能,以便所有已打开的手风琴保持打开状态。
我希望在我的Java类中的onClick方法中执行此操作,分配给屏幕上的复选框,用户可以使用该复选框激活/停用手风琴功能。
public UIPanel() {
initWidget(uiBinder.createAndBindUi(this));
disableCheckbox.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
if(accordionsDisabled) {
Window.alert("accordions enabled");
// IGNORE THIS FOR MEANTIME - REMOVE FUNCT IS PRIORITY 1
accordionsDisabled = false;
} else {
Window.alert("accordions disabled");
// remove outer accordion element i.e. $('#test').unwrap();
contentPanel.getElementById("test").removeParent();
accordionsDisabled = true;
}
}
});
}
我在Java中使用Element或Dom对象没有成功(使用removeParent方法)有没有其他方法可以做到这一点?
答案 0 :(得分:1)
gwt-jquery怎么样?通过这个,您可以获得jquery的界面,并且可以使用unwrap
的{{1}}方法来实现完全相同:
从DOM中删除匹配元素集的父元素 匹配元素取而代之。
JQueryElement
可以找到由GWT Material Design维护的另一个界面here。它基于gwt-jquery。如您所见,public native JQueryElement<T> unwrap();
例如几乎相同。它也可以通过Maven获得。
替代没有其他库将是一个JSNI(JavaScript本机接口)方法,并使用像这样的JQuery JQueryElement.java
函数。
unwrap