gpt4 book ai didi

java - 从 GWT UIBinder 中删除父元素

转载 作者:行者123 更新时间:2023-12-01 08:59:00 25 4
gpt4 key购买 nike

我有一个从 GWTBootstrap 生成的 GWT Accordion 元素,它会生成类似于下面 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();

换句话说,我想关闭当另一个 Accordion 打开时自动打开或关闭的 Accordion 功能,以便所有已打开的 Accordion 保持打开状态。

我希望在我的 Java 类中的 onClick 方法中执行此操作,该方法分配给屏幕上的一个复选框,用户可以使用该复选框来激活/停用 Accordion 功能。

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 接口(interface),并且可以使用 JQueryElementunwrap 方法来实现完全相同的效果:

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 Design 维护的另一个界面可以在 here 找到。它基于 gwt-jquery。正如您所看到的,例如 JQueryElement.java 几乎是相同的。也可以通过 Maven 获得它。

另一种无需其他库的方法是 JSNI(JavaScript native 接口(interface))方法,并使用像这样的 JQuery unwrap 函数。

private static native void unwrapAccordionGroup() /*-{
$wnd.jQuery('#test').unwrap()
}-*/;

关于java - 从 GWT UIBinder 中删除父元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41833319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com