Определение jquery ready события в частичном просмотре
Я определил событие $(document).ready() на странице Site.Master, и я также хочу определить еще один $(document).ready() в одном из моих частичных представлений (который используется для отображения сообщений об ошибках и сообщений об ошибках) и я называю это частичное представление на всех страницах и все частичное представление...
частичные представления отображаются на странице, а также с использованием модального всплывающего окна... поэтому я попытался сделать это, но событие готовности при частичном просмотре не запускается
У меня есть несколько вещей, чтобы спросить:
- во-первых, возможно ли сделать то, что я пытаюсь сделать...
- есть страницы, которые имеют частичное представление, и из-за этого у страницы есть два события $(document).ready(), поэтому при загрузке страницы возникают ли какие-либо конфликты между этими двумя событиями...
и если какое-то тело может предоставить какой-то пример...
3 ответа
Да, вы можете включить несколько готовых обработчиков событий на странице. Вы можете поместить их в мастер сайта, частичные просмотры и просмотреть саму страницу - столько, сколько вам нужно. Все они должны быть заключены в теги сценария. Они будут запускаться в том порядке, в котором они включены в окончательную визуализированную страницу. Обратите внимание, что вы должны быть осторожны, чтобы убедиться, что часть включена только один раз на странице или что не имеет значения, если этот обработчик вызывается несколько раз.
Пример (не полный):
Мастер:
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jqueryui.js"></script>
<script type="text/javascript">
$(function() {
// do something for whole page
});
</script>
@Html.Partial( "ErrorDialog" )
Частичное (ErrorDialog)
<div id="errorDialog" style="display: none;" title="Error">
<p>An error occurred</p>
</div>
<script type="text/javascript">
$(function() {
$('#errorDialog').dialog({
modal: true,
autoOpen: false,
// more options
});
});
function showError(msg) {
$('#errorDialog').find('p').html(msg)
.stop()
.dialog('open');
}
</script>
Да, вам разрешено иметь несколько $(document).ready()
на странице просто убедитесь, что вы включили файл jquery перед вызовом этой функции. Functions
вызывается внутри $(document).ready()
вызывается в порядке их запроса.
Да, это верно, если в предыдущем частичном представлении не было ошибок, вы можете иметь столько $(document).ready(), сколько захотите, и оно сработает для всех.