0

私は最近、jsが必要な状態で作業を開始しましたが、問題があります。

すべてが完璧に読み込まれていますが、ページを更新すると、次のエラーが発生することがあります

Uncaught ReferenceError: $ is not defined 

もう一度リフレッシュすると消えてしまい、もう一度リフレッシュするとそこにあります。

これが私の構造です

requirejs.config({
    baseUrl: siteUrl + "assets/js",

    paths: {
        "jquery": "./libs/jquery",
        "jquery-ui": "libs/jquery-ui",
        "bootstrap": "libs/bootstrap",
        "scripts": "scripts",
        "plugins": "plugins",
    }, 

    shim: {

    'jquery-ui': {
        deps: [ 'jquery' ],
        exports: 'jquery-ui'
    },
    'bootstrap': {
        deps: [ 'jquery' ],
        exports: 'bootstrap'
    },

    'plugins/controls': {
        deps: [ 'jquery', 'plugins/dialog2'],
        exports: 'plugins/controls'
    },

    'plugins/form': {
        deps: [ 'jquery'],
        exports: 'plugins/form'
    },

    'plugins/dialog2': {
        deps: [ 'jquery' ],
        exports: 'plugins/dialog2'
    },

     'plugins/chosen': {
        deps: [ 'jquery' ],
        exports: 'plugins/chosen'
    },

     waitSeconds: 25,
}
});

/*
    loading libs for every page
*/
requirejs(['jquery', 'jquery-ui', 'bootstrap', 'plugins/chosen'],
function($, chosen){
/*
    loading global selectors and variables
*/ 
$(function () {
   $('.chzn-select').chosen();  
});

});

だから私はそれで本当に大きな初心者です、誰かが私にヒントを与えてくれますか、または私がこのエラーを受け取っている理由を説明できますか?そして、なぜこれがページの更新時に発生するのですか?

4

1 に答える 1

2

これは確かにすでに問題です:

requirejs(['jquery', 'jquery-ui', 'bootstrap', 'plugins/chosen'],
function($, chosen){
...

プラグインをロードしたいのですchosenが、実際はですjquery-ui。使用しないので、パラメータを削除します(ただし、配列からは削除しません)。

plugins/chosenプラグイン(とりわけ)のshimエクスポート値が間違っていると思われます。

それらのプラグインを作成しましたか?その場合は、それらのコードをdefineブロックにラップするだけで、もうシムする必要はありません。

define(['jquery'], function ($) {...});

詳細はこちら

于 2013-02-18T08:16:01.480 に答える