我正在使用Typesafe Activator 1.2.10並嘗試使用WebJars Sample for Play 2.x。我查看應用程序模板並閱讀Bootstrap依賴於jQuery。所以,當你指定Bootstrap作爲依賴時,你也會得到jQuery。在測試頁面。在Play Framework中使用jQuery WebJars示例應用程序
OK,我想我現在有jQuery的可用 - 讓我們嘗試一下,加入以下最低代碼index.scala.html
(內<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
最後我在app/assets
打開index.coffee
腳本,並嘗試在這裏:
require ["bootstrap"],() ->
console.log "boostrap javascript loaded"
$('.container').hide()
勝利終於!但是,將所有jQuery代碼寫入外部文件是非常令人討厭的。我怎樣才能讓jQuery在HTML模板中工作?我如何封裝代碼,以便只有在jQuery被RequireJS加載後才能執行代碼?謝謝!