Javascript本机方法意外抛出exception
我正在从vaadin 6
版本更新vaadin项目到vaadin 7
。 它包含一些在旧版本中运行良好的原生Javascript方法。 但是有些人在应该调用时会抛出exception。 我不熟悉Javascript
编程,因此我无法识别错误的来源。 特别是该方法是:
protected static native void addSthToImg() /*-{ $wnd.$(document).ready(function() { var = $wnd.$; var('.settingswrapper > img').addClass("imgStartup"); if (var('.settingswrapper > img').hasClass("imgStartup")) { console.log("imgStartup exist"); var('.settingswrapper > img') .animate(null, 300, function() { var('.settingswrapper > img').removeClass("imgStartup"); var('.settingswrapper > img').addClass("imagePopIn"); }); } }); }-*/;
在Chrome中的控制台上,我看到错误堆栈跟踪:
Caused by: com.google.gwt.core.client.JavaScriptException: (TypeError) : Object [object global] has no method '$'
可能是错误的可能原因是什么,为什么它在旧版本中工作? jar子/库丢失了吗?
似乎jQuery别名$
未在全局范围内定义(由$wnd
表示)。 你确定你的页面包含jQuery吗?
您应该在HTML源代码中使用 (但指向项目中jquery.js的实际位置)。 我不知道Vaadin是否自动管理JavaScript库,因为我不熟悉该框架。