【问题标题】:Remove parent element from GWT UIBinder从 GWT UIBinder 中删除父元素
【发布时间】:2017-01-25 03:35:57
【问题描述】:

我有一个来自 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 调用以删除外部手风琴元素,而不删除其内容。

 $('#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 方法)有没有其他方法可以做到这一点?

【问题讨论】:

    标签: java jquery gwt gwt-bootstrap


    【解决方案1】:

    gwt-jquery 呢?这样你就得到了一个 jquery 的接口,并且可以使用JQueryElementunwrap 方法来达到完全相同的效果:

    从 DOM 中移除匹配元素集的父元素离开 匹配的元素在他们的位置。

    public native JQueryElement<T> unwrap();
    

    另一个由 GWT Material Design 维护的接口可以在here 找到。它基于 gwt-jquery。如您所见,例如JQueryElement.java 几乎相同。它也可以通过 Maven 获得。

    没有其他库的替代方法是 JSNI(JavaScript 原生接口)方法,并像这样使用 JQuery unwrap 函数。

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

    【讨论】:

    • 我按照您的建议使用了 GWTQuery,感谢您的提示!生成的代码如下所示:GQuery myElement = GQuery.$("#test"); myElement.unwrap();
    猜你喜欢
    • 2011-07-20
    • 2018-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-18
    • 2013-01-17
    相关资源
    最近更新 更多