【问题标题】:Calling jquery from GWT JSNI从 GWT JSNI 调用 jquery
【发布时间】:2011-08-29 21:55:22
【问题描述】:

我是一个零 jquery 经验的 GWT 人。对于那个很抱歉。不幸的是,我遇到了一些我必须在我的 GWT 项目中使用的 jquery 功能。

<script type="text/javascript">
$(document).ready(function() {
    zingchart.render({
        'id' : 'g1',
        'width' : 500,
        'height' : 400,
        'dataurl' : 'scatter_minimal.txt'
    });
    });
</script>

<div class="g" id="g1"></div>

凭我的直觉,我快要相信了

$(document).ready( ..)

应该翻译成 GWT 的onModuleLoad(){ ....},如果我在 onModuleLoad 中调用该函数,onModuleLoad 将确保 DOM 准备就绪。

但我认为以下内容无效..

private static native void render() /*-{
  function() {
    zingchart.render(
      {
        'id' : 'g1',
        'width' : 500,
        'height' : 400,
        'dataurl' : 'scatter_minimal.txt'
      }
    );
  }
}-*/;

如何编写 JSNI 代码来定义可以从 GWT 调用的函数?

【问题讨论】:

    标签: java jquery gwt jsni


    【解决方案1】:

    如果我正确理解你的问题,你想做的只是:

    private static native void render() /*-{
        zingchart.render(
          {
            'id' : 'g1',
            'width' : 500,
            'height' : 400,
            'dataurl' : 'scatter_minimal.txt'
          }
        );
    }-*/;
    

    然后您可以从您的 GWT 代码中调用 render()render 是函数本身,当你使用 JSNI 语法时,GWT 已经为你定义了一个 JavaScript 函数。

    背景

    编写function() {...} 定义了一个匿名函数——这不是你想要的(你没有任何方法可以引用它,因为你不会在任何地方传递它)。在 jQuery 中,您将匿名函数直接传递给 document.ready()

    【讨论】:

    • 谢谢,我也是这么想的。我一直想知道函数是否是 jquery 中的一些功能,除了是一个普通的旧 javascript 功能。
    • 从上面的例子中,我的场景无法获取对象 'zingchart' 本身。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多