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

时间:2014-01-28 21:22:19

标签: gwt zurb-foundation jsni

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

他们的文档显示为:

<script>
    $(document).foundation();
</script>

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

我制作了一个调用同样函数的JSNI方法:

public static native void foundationInit() /*-{
    $(document).foundation();
}-*/;

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

1 个答案:

答案 0 :(得分:9)

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

  

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

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