1

groovyとGrails(grailsバージョン2.0.4)で構築されたアプリケーションがあります。私はgrailsjQuery-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>

期待どおりにアラートを出します。

grailsjQueryプラグインは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 に答える