&美元“未定义”;来自JSNI;jquery已存在 我正试图使用Zurb基金会和GWT基金会。基础JavaScript小部件在被渲染后需要初始化;因为我使用的是“单页”的方法,所以我需要在渲染新内容之后调用基础初始化方法。p>

&美元“未定义”;来自JSNI;jquery已存在 我正试图使用Zurb基金会和GWT基金会。基础JavaScript小部件在被渲染后需要初始化;因为我使用的是“单页”的方法,所以我需要在渲染新内容之后调用基础初始化方法。p>,gwt,zurb-foundation,jsni,Gwt,Zurb Foundation,Jsni,他们的文档显示如下: <script> $(document).foundation(); </script> 然而,当调用它时,javascript控制台中会出现一个错误:“$未定义”。这是令人困惑的,因为$是最明确的定义;jquery已加载,我可以在javascript控制台中键入“$(document).foundation()”来运行该函数。那么问题出在哪里呢?您必须将jQuery对象$称为$wnd.$ 从JSNI访问浏览器的窗口和文档对象时,必须分别将

他们的文档显示如下:

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

然而,当调用它时,javascript控制台中会出现一个错误:“$未定义”。这是令人困惑的,因为$是最明确的定义;jquery已加载,我可以在javascript控制台中键入“$(document).foundation()”来运行该函数。那么问题出在哪里呢?

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

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


在您调用它时可能没有定义它。有时候控制台会误导你,因为当你在控制台中做事情时,所有页面的资源都被加载了。你不需要把它称为
$wnd.$
?@superalStreams很好,但这里不是这样——我在应用程序首次初始化时加载jquery,然后在用户初始化后打这个电话。@ChrisMartin谢谢,你让我找到了一个有效的解决方案:$wnd.jQuery($doc.foundation(),如果你想把你的评论作为答案发表,我会接受的。
public static native void foundationInit() /*-{
    $(document).foundation();
}-*/;