来自JSNI的"$未定义"; jquery已经存在

use*_*847 3 gwt jsni zurb-foundation

我正在尝试将Zurb Foundation与GWT一起使用.基础javascript小部件在呈现后需要初始化; 因为我使用的是"单页"方法,所以我需要在渲染新内容后调用基础初始化方法.

他们的文档显示为:

<script>
    $(document).foundation();
</script>
Run Code Online (Sandbox Code Playgroud)

...应该放在页面的末尾.

我做了一个调用这个函数的JSNI方法:

public static native void foundationInit() /*-{
    $(document).foundation();
}-*/;
Run Code Online (Sandbox Code Playgroud)

但是,当调用它时,我在javascript控制台中收到错误:"$ is not defined".这很令人困惑,因为$是最明确定义的; 加载了jquery,在javascript控制台中我可以输入"$(document).foundation()"来运行该函数.那么问题是什么?

Chr*_*tin 9

您必须将jQuery对象$称为$wnd.$.

从JSNI访问浏览器的窗口和文档对象时,必须分别将它们引用为$ wnd和$ doc.您编译的脚本在嵌套框架中运行,$ wnd和$ doc自动初始化以正确引用主机页面的窗口和文档.

http://www.gwtproject.org/doc/latest/DevGuideCodingBasicsJSNI.html