1

私は少しJS初心者です。

これは大まかな例ですが、私の問題を示しています。yepnope はうまく機能していますが、yep スクリプト (jquery.selectBoxIt.min.js) をスタックの一番上に追加しています。問題は、ロードされたスクリプトが JQuery ライブラリの前にロードされるスタックの一番上に置かれる場合です。問題は、実行するためにjQueryに依存していることです。私はyepnopeのドキュメントを見ましたが、それについて何も言及していませんでした.

これが私のコードです(私のドキュメントの下部にあります:

<script src="js/jquery.js"></script>
<script src="js/jquery-ui-1.9.1.custom.min.js"></script>
<script src="js/jquery.infieldlabel.min.js"></script>
<script src="js/jquery.colorbox-min.js"></script>
<script src="js/bootstrap.js"></script>
<script src="js/jquery.validate.min.js"></script>
<script src="js/modernizr.js"></script>
<script type="text/javascript">
Modernizr.load([
    {
    // Let's check something simple
    test : Modernizr.borderradius,
    // this should then satisfy the yep and load this script
    yep : ['js/jquery.selectBoxIt.min.js']
    }
]);
</script>
</body>
4

3 に答える 3

0

上記の静的 JS コードを関数に追加し、$(document).ready() に配置するだけです。これにより、スクリプトが呼び出されるまでに jquery が確実に読み込まれます。これが不可能な場合は、javascript を使用して jquery をロードし、コールバックに静的 JS を配置してみてください。jQuery を動的に読み込むを参照してください

于 2013-02-06T21:43:53.887 に答える
0

jqueryなしでそれを行うには:

function init(){
  Modernizr.load([
  {
  test : Modernizr.borderradius,
  yep : ['js/jquery.selectBoxIt.min.js']
  }
  ]);
}
document.addEventListener('DOMContentLoaded', init, false)
于 2013-02-06T21:49:21.730 に答える
0

私自身、Modernizr/yepnope にはかなり慣れていませんが、yepnode のドキュメントから、キーは yepnope (または Modernizr、それらは同じものです) を使用して、必要なスクリプトを正しい順序でロードすることであると考えています。指定した順序で実行されます。

したがって、必要なのは次のようなものだと思います。

<script src="js/modernizr.js"></script>
<script type="text/javascript">   

Modernizr.load([
    {
        // Load jQuery first
        load : ['js/jquery.js', 
                // ... and your other JS files
               ]
    },
    {
        // Let's check something simple
        test : Modernizr.borderradius,
        // this should then satisfy the yep and load this script
        yep : ['js/jquery.selectBoxIt.min.js']
    }
]);

</script>

また、CDN から jquery をロードしようとする例については、これらの yepnode ドキュメントを確認し、正常にロードされない場合はローカル コピーにフォールバックします。これにより、より明確になりました。

于 2013-03-22T20:20:28.617 に答える