从 GWT UIBinder 中移除父元素
Remove parent element from GWT UIBinder
我有一个 GWT 从 GWTBootstrap 生成的手风琴元素,它产生类似于下面的 html 的内容:
<div class="accordion" id="gwt-uid-1234">
<div class="accordion-group" id="test">
<div class="accordion-heading">Header1</div>
...
</div>
</div>
我希望复制此 jquery 调用以移除外部手风琴元素,而不删除其内容。
$('#test').unwrap();
也就是说,我想关闭手风琴在打开另一个手风琴时自动打开或关闭的功能,让所有已经打开的手风琴保持打开状态。
我希望在我的 Java class 中的 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 方法)还有其他方法吗?
那gwt-jquery呢?有了这个,你就得到了 jquery 的接口,并且可以使用 JQueryElement
的 unwrap
方法来实现完全相同的:
Remove the parents of the set of matched elements from the DOM leaving
the matched elements in their place.
public native JQueryElement<T> unwrap();
GWT 维护的另一个接口Material 可以找到设计here。它基于 gwt-jquery。如您所见,例如 JQueryElement.java
几乎相同。它也可以通过 Maven 获得。
另一种没有另一个库的方法是 JSNI(JavaScript 本机接口)方法并使用 JQuery unwrap
函数,如下所示.
private static native void unwrapAccordionGroup() /*-{
$wnd.jQuery('#test').unwrap()
}-*/;
我有一个 GWT 从 GWTBootstrap 生成的手风琴元素,它产生类似于下面的 html 的内容:
<div class="accordion" id="gwt-uid-1234">
<div class="accordion-group" id="test">
<div class="accordion-heading">Header1</div>
...
</div>
</div>
我希望复制此 jquery 调用以移除外部手风琴元素,而不删除其内容。
$('#test').unwrap();
也就是说,我想关闭手风琴在打开另一个手风琴时自动打开或关闭的功能,让所有已经打开的手风琴保持打开状态。
我希望在我的 Java class 中的 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 方法)还有其他方法吗?
那gwt-jquery呢?有了这个,你就得到了 jquery 的接口,并且可以使用 JQueryElement
的 unwrap
方法来实现完全相同的:
Remove the parents of the set of matched elements from the DOM leaving the matched elements in their place.
public native JQueryElement<T> unwrap();
GWT 维护的另一个接口Material 可以找到设计here。它基于 gwt-jquery。如您所见,例如 JQueryElement.java
几乎相同。它也可以通过 Maven 获得。
另一种没有另一个库的方法是 JSNI(JavaScript 本机接口)方法并使用 JQuery unwrap
函数,如下所示.
private static native void unwrapAccordionGroup() /*-{
$wnd.jQuery('#test').unwrap()
}-*/;