我正在将vaadin项目从vaadin 6
版本更新为vaadin 7
。它包含一些在旧版本中运行良好的原生Javascript方法。但是有些人在应该调用时会抛出异常。我对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 /库?
答案 0 :(得分:0)
似乎jQuery别名$
未在全局范围内定义(由$wnd
表示)。你确定你的页面包含jQuery吗?
您的HTML源代码中应该包含<script src="/js/jquery.js" type="text/javascript"></script>
(但指向项目中jquery.js的实际位置)。我不知道Vaadin是否自动管理JavaScript库,因为我不熟悉该框架。