简单的JS功能在Play Framework中不起作用

时间:2014-03-17 01:08:53

标签: playframework playframework-2.0 playframework-2.2

我正在尝试在我的Play应用程序中使用这个简单的JavaScript代码:http://jsfiddle.net/JXW29/

它在我的浏览器中工作,但在我的Play应用程序中没有,而我使用jQuery的一些动画菜单确实运行良好.. 这是我的main.scala.html

的结尾
    <script type="text/javascript" src="@routes.Assets.at("js/jquery.js")"></script>
    <script type="text/javascript" src="@routes.Assets.at("js/functions.js")"></script>

这两个脚本都在public / js存储库中。 我可以通过Firebug看到这两个脚本都已加载到我的浏览器中。

我正在使用最新版本的Play Framework和jQuery。

有什么想法吗?感谢

2 个答案:

答案 0 :(得分:0)

可能是时间问题 - 您使用的是$(function(){ });还是.ready()?当我使用以下代码运行代码时,它可以工作(从coffeescript编译):

(function() {
  $(function() {
    return $("span.deleteItem").bind('click', function() {
      $(this).closest('tr').find('td').fadeOut(1000, function() {
        return $(this).parents('tr:first').remove();
      });
      return false;
    });
  });
}).call(this);

我的观点如下所示 - (您的目录名称略有不同):

<script type="text/javascript" src="@routes.Assets.at("javascripts/jquery.js")"></script>
<script type="text/javascript" src="@routes.Assets.at("javascripts/functions2.js")"></script>
<div>
  <table>
    <tr><td><span class="deleteItem">Click</span></td><td>Test 1</td></tr>
    <tr><td><span class="deleteItem">Click</span></td><td>Test 2</td></tr>
    <tr><td><span class="deleteItem">Click</span></td><td>Test 3</td></tr>
    <tr><td><span class="deleteItem">Click</span></td><td>Test 4</td></tr>
  </table>
</div>

答案 1 :(得分:0)

我用这段代码解决了它:

(function ($) {
  $(document).ready(function () {
    return $("span.deleteItem").bind('click', function () {
        $(this).closest('tr').find('td').fadeOut(1000, function () {
            return $(this).parents('tr:first').remove();
        });
        return false;
    });
  });
})(jQuery);

来自我发现的博文:http://codeimpossible.com/2010/01/13/solving-document-ready-is-not-a-function-and-other-problems/

但是我不明白为什么前一个功能在游戏之外起作用,以及为什么这个功能正在发挥作用..

有任何线索吗?