我正在使用Typesafe Activator 1.2.10并尝试使用WebJars Sample for Play 2.x。我查看了应用程序模板并阅读了Bootstrap 依赖于 jQuery。因此,当您将 Bootstrap 指定为依赖项时,您也会获得 jQuery。在测试页面中。
index.scala.html
好的,我想我现在可以使用 jQuery - 让我们通过将以下最少代码添加到(inside )来尝试一下<div class="container">
:
<script type="text/javascript">
$('.container').hide();
</script>
不,Safari 抱怨说ReferenceError: Can't find variable: $
. 如果我在 Safari 的命令行中尝试相同的代码,它就可以工作——所以 jQuery 不会立即加载,但过了一段时间它就在那里。
我阅读了一些有关 RequireJS 用法的内容并尝试以下操作:
<script type="text/javascript">
require(["jquery"], function() {
$('.container').hide();
});
</script>
现在我从 Safari 收到以下错误:
[Error] Failed to load resource: the server responded with a status of 404 (Not Found) (jquery.js, line 0)
[Error] Failed to load resource: the server responded with a status of 404 (Not Found) (jquery.js, line 0)
[Error] Error: Script error for: jquery
http://requirejs.org/docs/errors.html#scripterror
最后我打开index.coffee
脚本app/assets
并在这里尝试:
require ["bootstrap"], () ->
console.log "boostrap javascript loaded"
$('.container').hide()
终于胜利了!但是将我所有的 jQuery 代码写在一个外部文件中真的很讨厌。如何让 jQuery 在 HTML 模板中工作?如何封装代码,使其仅在 jQuery 加载 RequireJS 后执行?谢谢!