2

複雑なページ構成の一部としてレンダリングされるパーシャルがあります。

これらのパーシャルのいくつかは、リスト データなどをシードするために jQuery OnDocumentReady の良さを必要とします。これらのパーシャルの多くは、レンダリング中に選択される可能性があります (非常に動的です)。

私の_Layoutには、このようなセクション定義があります

<script src="http://my/fav/cdn/jquery-1.5.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
jQuery(function($) {
    @RenderSection("OnDocumentReadySection", false)
});
</script>

私のパーシャルでは、このようなものを書きたい

@section OnDocumentReadySection{
    $('#partial-1').init();
}

ページのレンダリングの結果は次のようになります

<script src="http://my/fav/cdn/jquery-1.5.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
jQuery(function($) {
    $('#partial-1').init();
    $('#partial-2').init();
    $('#partial-3').init();
    $('#partial-n').init();
});
</script>

これは、すべての JavaScript がレンダリングされた html の下部にあることを確認するためのもので、はるかに最適であると言われています。

4

1 に答える 1

1

それ以外の:

jQuery(function($) {
    $('#partial-1').init();
    $('#partial-2').init();
    $('#partial-3').init();
    $('#partial-n').init();
});

代わりに、それらのそれぞれに共通の css クラスを割り当てて (その定義を定義していなくても)、ヘッドでこれを行う必要があります。

jQuery(function($) {
    $('.classname').init();
});

または、必要に応じて:

jQuery(function($) {
    $('.classname').each(function(){ $(this).init(); });
});
于 2011-07-18T02:46:33.703 に答える