【问题标题】:GWTQuery load() replaces elementGWTQuery load() 替换元素
【发布时间】:2013-10-13 23:47:12
【问题描述】:

我刚刚开始使用 GWTQuery,并试图围绕 load() 函数展开思考。考虑:

    public void onModuleLoad() {
    SimplePanel sp = new SimplePanel();
    sp.getElement().setId("stuff");
    RootLayoutPanel root = RootLayoutPanel.get();
    root.add(sp);

    $("#stuff").load("/hello.html");
}

如果我运行上述代码,SimplePanel 元素的空div 块将替换hello.html 的内容。换句话说,它在body 块中结束,div 从 DOM 中消失。我想要的是 div包含 hello.html。我通过将另一个临时的SimplePanel 作为div id="stuff" 的孩子来解决这个问题,并在上​​面调用load()。它可以按需要工作。但我觉得我错过了一些基本的东西。有没有办法做到这一点而无需一次性的SimplePanel

【问题讨论】:

  • 我已经在我的项目中运行了这段代码,它的工作方式与预期一样。 div#stuff 没有被替换为 hello.html 的内容。你还有这个问题吗?

标签: load gwtquery


【解决方案1】:

您的编码工作正常,GQuery load() 将元素的内容替换为从服务器获取的内容。

load()的实现在Ajax.java中可以看到,首先清理返回的字符串去掉<html><head><body><script>标签,然后将内容包装成<div>,然后最后清空目标面板的内容(在您的情况下为$(#stuff)),并附加新创建的<div>

我已经用最后一个快照和稳定版本测试了你的代码,你使用的是什么版本?

【讨论】:

    猜你喜欢
    • 2020-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-29
    • 1970-01-01
    • 2016-11-07
    相关资源
    最近更新 更多