Есть ли способ добавить код в раздел asp.mvc - PullRequest
2 голосов
/ 18 июля 2011

У меня есть части, которые отображаются как часть сложной композиции страницы.

Некоторым из этих частичностей требуется некоторое качество 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, который, как мне говорят, гораздо более оптимален.

1 Ответ

1 голос
/ 18 июля 2011

Вместо:

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(); });
});
...