我正在尝试将Zurb Foundation与GWT结合使用。基础javascript小部件在呈现后需要初始化;因为我使用的是“单页”方法,所以我需要在渲染新内容后调用基础初始化方法。
他们的文档显示为:
<script>
$(document).foundation();
</script>
...应放在页面的末尾。
我制作了一个调用同样函数的JSNI方法:
public static native void foundationInit() /*-{
$(document).foundation();
}-*/;
然而,当调用它时,我在javascript控制台中收到错误:“$ is not defined”。这很令人困惑,因为$是最明确定义的;加载了jquery,在javascript控制台中我可以输入“$(document).foundation()”来运行该函数。那么问题是什么?
答案 0 :(得分:9)
您必须将jQuery对象$
称为$wnd.$
。
当从JSNI访问浏览器的窗口和文档对象时,必须分别将它们引用为$ wnd和$ doc。您编译的脚本在嵌套框架中运行,$ wnd和$ doc会自动初始化,以正确引用主页的窗口和文档。
http://www.gwtproject.org/doc/latest/DevGuideCodingBasicsJSNI.html