Grails中的jQuery-未捕获的ReferenceError:$未定义

时间:2012-08-07 10:35:46

标签: jquery grails grails-plugin

我有一个基于groovy和Grails(grails版本2.0.4)的应用程序。我;使用grails jQuery -plugin

如果我尝试这样的话,请在gsp页面中

 <script type="text/javascript">

     $(document).ready(function() {
        alert($); 
     });

</script>

让我在控制台中出错了

      Uncaught ReferenceError: $ is not defined list:24
      (anonymous function)

但如果我尝试这样的话

    <r:script>

         $(document).ready(function() {
             alert($); 
        });

    </r:script>

它按预期发出警告。

grails jQuery插件安装jquery版本1.7.1

是什么导致此行为/错误?

当我看到页面源时,我发现在脚本标记

之后加载了jQuery

如何解决?

我的main.gsp页面

    <!doctype html>
   <!--[if lt IE 7 ]> <html lang="en" class="no-js ie6"> <![endif]-->
   <!--[if IE 7 ]>    <html lang="en" class="no-js ie7"> <![endif]-->
   <!--[if IE 8 ]>    <html lang="en" class="no-js ie8"> <![endif]-->
   <!--[if IE 9 ]>    <html lang="en" class="no-js ie9"> <![endif]-->
   <!--[if (gt IE 9)|!(IE)]><!--> <html lang="en" class="no-js"><!--<![endif]-->
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <r:require modules="jquery"/>
    <title><g:layoutTitle default="Grails"/></title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="shortcut icon" href="${resource(dir: 'images', file: 'favicon.ico')}" type="image/x-icon">
    <link rel="apple-touch-icon" href="${resource(dir: 'images', file: 'apple-touch-icon.png')}">
    <link rel="apple-touch-icon" sizes="114x114" href="${resource(dir: 'images', file: 'apple-touch-icon-retina.png')}">
    <link rel="stylesheet" href="${resource(dir: 'css', file: 'main.css')}" type="text/css">
    <link rel="stylesheet" href="${resource(dir: 'css', file: 'mobile.css')}" type="text/css">
    <g:layoutHead/>
     <g:javascript library="jquery"/>
    <r:require module="application"/>
    <r:layoutResources />

</head>
<body>
    <div id="spinner" class="spinner" style="display:none;"><g:message code="spinner.alt" default="Loading&hellip;"/></div>
     <div class="page_header">
        <g:render template="/templates/header" />
    </div>
    <div class="container">
        <div class="left_column">
            <g:render template="/templates/commonMenu" />
        </div>
        <div class="center">
            <g:layoutBody />
        </div>
    </div>
    <div class="footer">
        <g:render template="/templates/footer" />
    </div>

</body>
 </html>

1 个答案:

答案 0 :(得分:1)

首先检查Grails Resourses插件的文档,了解它的工作原理以及如何使用它。 使用脚本标记时,它将呈现在定义的位置。但是如果你使用r:script,那么它将在页面末尾的所有模块(包括jQuery)之后呈现(通常)。