1

我有一个基于 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>
4

1 回答 1

1

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

于 2012-08-07T12:41:29.763 回答