1

の 2 つのブロックを異なる場所にロードしようとしてlab.jsいますが、最初のブロックにロードされたファイルから 2 番目のブロックで関数を使用すると、未定義として表示されます。

これは最初のブロックです(私の MVC プロジェクトからヘッダー テンプレートに読み込まれます)

<script>
$LAB
.script("<?php echo(GlobalConfig::$ROOT_URL); ?>scripts/jquery-1.10.2.min.js").wait()
.script("<?php echo(GlobalConfig::$ROOT_URL); ?>bootstrap/js/bootstrap.min.js").wait()
.script("<?php echo(GlobalConfig::$ROOT_URL); ?>bootstrap/js/bootstrap-datepicker.js").wait()
.script("<?php echo(GlobalConfig::$ROOT_URL); ?>scripts/libs/underscore-min.js").wait()
.script("<?php echo(GlobalConfig::$ROOT_URL); ?>scripts/libs/underscore.date.min.js").wait()
.script("<?php echo(GlobalConfig::$ROOT_URL); ?>scripts/libs/backbone-min.js").wait(function(){
    $(document).ready(function(){
        alert("loaded");
    });
});
</script>

これは、コンテンツ テンプレートで読み込まれた2 番目のブロックです

$LAB
.script("../scripts/jquery-1.10.2.min.js").wait(function(){
    $(document).ready(function(){

        $(".test-badges").each(function( index ) {
            $( this ).tooltip({
              'show':true,
              'placement': 'bottom',
              'title' : 'Marca esta casilla si consideras que tu compañer@ debe responder igual.'
            });

        });
    });
});

2 番目のブロック (.tooltip) の関数は、jquery に依存しているため、読み込まれません。ヘッダーにロードされたブロックだけで両方のブロックを統合する方法はありません(両方のファイルは完全に独立しており、コンテンツが動的に作成されています。また、私が達成しようとしているものでもありません)

問題は..最初のブロックが完全にロードされたときにのみロードするように2番目のブロックに指示する方法はありますか?

どうもありがとう!

4

1 に答える 1

0

問題は、2 つの別個の $LAB チェーンを作成していることと、 $LAB チェーンへの参照を格納し、最後の呼び出しを次のようにチェーンすることで目的を達成できることだと思います。

最初のブロック:

<script>
var chain = $LAB
.script("<?php echo(GlobalConfig::$ROOT_URL); ?>scripts/jquery-1.10.2.min.js").wait()
.script("<?php echo(GlobalConfig::$ROOT_URL); ?>bootstrap/js/bootstrap.min.js").wait()
.script("<?php echo(GlobalConfig::$ROOT_URL); ?>bootstrap/js/bootstrap-datepicker.js").wait()
.script("<?php echo(GlobalConfig::$ROOT_URL); ?>scripts/libs/underscore-min.js").wait()
.script("<?php echo(GlobalConfig::$ROOT_URL); ?>scripts/libs/underscore.date.min.js").wait()
.script("<?php echo(GlobalConfig::$ROOT_URL); ?>scripts/libs/backbone-min.js")
</script>

2 番目のブロック:

chain.wait(function(){
    $(document).ready(function(){

        $(".test-badges").each(function( index ) {
            $( this ).tooltip({
              'show':true,
              'placement': 'bottom',
              'title' : 'Marca esta casilla si consideras que tu compañer@ debe responder igual.'
            });
        });
    });
});
于 2013-12-10T16:47:03.800 に答える