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()"来运行该函数.那么问题是什么?
您必须将jQuery对象$称为$wnd.$.
从JSNI访问浏览器的窗口和文档对象时,必须分别将它们引用为$ wnd和$ doc.您编译的脚本在嵌套框架中运行,$ wnd和$ doc自动初始化以正确引用主机页面的窗口和文档.
http://www.gwtproject.org/doc/latest/DevGuideCodingBasicsJSNI.html