【发布时间】:2010-09-16 20:55:40
【问题描述】:
我正在尝试添加外部 javascript 代码以向页面的 gwt 生成部分添加一些效果。
设计师为我提供了一些静态 html/css,它使用 javascript 为页面添加所需的效果。
我们的应用程序使用官方 GWT 页面上描述的 MVP 架构,因此对于初始测试,我只是将静态 html 放入所需视图的 UiBinder xml 文件中。输出很好,在浏览器中打开时页面看起来与提供的页面相同。唯一的问题是javascript效果不起作用。
具体来说就是Rico框架的手风琴效果。当鼠标悬停在列表元素上时,它应该改变颜色。当用户点击列表元素时,它会展开以显示更多详细信息(如树小部件)。
模块主机页面中包含的脚本如下所示:
<head>
...
<script src="javascript/rico.js" type="text/javascript"></script>
<script type='text/javascript'>
Rico.loadModule('Accordion');
Rico.onLoad( function() {
new Rico.Accordion( $$('div.panelheader'), $$('div.panelContent'),
{panelHeight:66, hoverClass: 'mdHover', selectedClass: 'mdSelected'});
});
</script>
...
</head>
设计者提供的所有 .js 文件都在 war/javascript 文件夹中,在 firebug 中检查时(在开发模式和部署的 tomcat 中),浏览器似乎看到那些文件。我可以点击src="../...js",浏览器会打开正确的文件。
问题可能出在哪里?由于静态页面有效并且效果可见,我想问题出在与 GWT 的合并中。是我在包含方面做错了什么,还是外部 javascript 在访问 gwt 生成的页面部分时遇到了问题?
【问题讨论】:
-
可能是你的js函数尝试添加效果时gwt没有将其元素添加到页面的时间问题。
标签: javascript gwt