【发布时间】:2012-03-14 21:29:03
【问题描述】:
我有一个 Roo 生成的 web 应用程序,我正在尝试将 JQuery 放入其中(我知道 Roo 使用 Dojo,但我想我会尝试让 JQuery 工作,因为我对此比较熟悉)。
我正在做的事情
我从主题生成器获得了自定义版本的 JQuery-UI,将脚本(基本和 ui js 文件)和 CSS 文件复制到我的应用程序中。然后,我复制了您也获得的示例“index.html”文件,其中显示了一些小部件。
一切正常。
不起作用的东西(JQuery-UI)
当我尝试将它集成到我自己的页面中时,我的问题就开始了。我通过各种方法导入了所有三个文件(使用我下载的那些,还尝试了在线 CDN(google-apis))。我还添加了 JQuery.noConflict() 只是为了确保它与 Dojo 共存。
这行得通(基本的东西)
$(document).ready(function($) {
alert('JQuery is working');
});
...但是当我尝试使用 JQuery-UI 进行任何操作时,我一无所获。例如,
$("#accordion").accordion({ header: "h3" });
我在 Firefox 中得到了这个(在 Chrome 中也出现了类似的错误)
Error: $("#accordion").accordion is not a function
我检查了视图源以查看它为每三个脚本使用的 URL,并将每个脚本粘贴回我的浏览器以检查它们是否正确,例如不会被 Spring-security 或其他任何东西阻止。一切都好。
我还尝试制作自己的布局(使用图块),它完全绕过了 Roo 可能添加的任何 Dojo 内容,但仍然出现相同的错误。
还尝试将 JS/CSS 文件复制到 /src/main/resources/META-INF 下,直接在 webapp 文件夹(图像所在的位置)下,并相应地调整 URL。
我只能猜测这与我的页面由图块组成有关,这会阻止加载 JQuery-UI 脚本,因此它找不到手风琴功能(或任何其他功能) .
我在源代码中注意到,手风琴函数有一个“依赖”子句,其中列出了核心和小部件 js 文件。我是否也需要从某个地方手动获取这些? (我注意到它们在 developer-bundle 中,但我提到的 index.html 文件在没有明确“导入”这些文件的情况下工作......
到目前为止,Roo 给我留下了深刻的印象,它为我节省了很多时间(尤其是在后端 Java 方面)。从它的设计方式来看,我知道 JQuery 是可能的(所有 Dojo 代码都整齐地放入 tagx 文件中,因此很容易换出),另外,我可以看到其他人已经让它工作了。所以这只是我做错了什么,但我无法弄清楚它是什么。
如果有人可以提供帮助,将不胜感激,谢谢!
【问题讨论】:
-
文件的保存位置与问题无关。尝试更改加载 jQuery 的顺序。也可以尝试使用“jQuery”而不是“$”。
-
首先,如果你想放弃Roo,你可以继续。请记住,Spring Roo 是一项持续的工作,在尝试更改 Roo 的内置行为之前,需要对 Roo 的工作原理有相当多的了解。如果您问一个关于如何将 jQuery 与 Spring Roo 集成的问题,而不是发布这个问题,我相信我能帮助您。 :) 干杯。
-
你去 bhagyas :) 请帮忙,我很感激!谢谢kitgui,我确实尝试过这些事情(并将var重命名为$j等,但如果我错过了什么,我会重试
-
顺便说一句,我开始研究 JQuery 是因为我看到很多帖子说 Dojo 不够好。但是由于我已经对其进行了更多研究,Dojo 1.7+ 似乎人们现在可能比 JQuery 更喜欢它。我根本不是专家,对人们的想法如此感兴趣。既然我已经开始使用 Dojo,我应该坚持使用它吗?
标签: jquery jquery-ui spring-roo