определение jquery ready события в частичном просмотре - PullRequest
8 голосов
/ 06 августа 2011

Я определил событие $ (document) .ready () на странице Site.Master, и я также хочу определить еще один $ (document) .ready () в одном из моих частичных представлений (который используется для отображения сообщений и сообщений). сообщения об ошибках), и я вызываю это частичное представление на всех страницах и все частичное представление ...

частичные представления отображаются на странице, а также с использованием модального всплывающего окна ... поэтому я попытался, но событие готовности при частичном просмотре не запускается

У меня есть несколько вопросов:

  • Во-первых, возможно ли сделать то, что я пытаюсь сделать ...
  • есть страницы, которые имеют частичное представление, и из-за этого на странице есть два события $ (document) .ready (), поэтому при загрузке страницы возникают ли конфликты между этими двумя событиями ...

и если какое-то тело может предоставить какой-то пример ...

Ответы [ 3 ]

5 голосов
/ 06 августа 2011

Да, вы можете включить несколько готовых обработчиков событий на странице. Вы можете поместить их в мастер сайта, частичные просмотры и просмотреть саму страницу - столько, сколько вам нужно. Все они должны быть заключены в теги сценария. Они будут запускаться в том порядке, в котором они включены в окончательную визуализированную страницу. Обратите внимание, что вы должны быть осторожны, чтобы убедиться, что часть включена только один раз на странице или что не имеет значения, если этот обработчик вызывается несколько раз.

Пример (не полный):

Master:

 <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>
5 голосов
/ 06 августа 2011

да, вам разрешено иметь несколько $(document).ready() на странице, просто убедитесь, что вы включили файл jquery перед вызовом этой функции. Functions вызывается внутри $(document).ready(), вызываемой в том порядке, в котором они запрашиваются.

jQuery - несколько $ (документ) .ready ...?

1 голос
/ 14 мая 2015

Да, верно, если в предыдущем частичном просмотре не было ошибок, вы можете иметь столько $ (document) .ready (), сколько захотите, и оно сработает для всех.

...