11

我在 Site.Master 页面中定义了一个 $(document).ready() 事件,我还想在我的一个局部视图中定义另一个 $(document).ready() (用于显示消息和错误消息) ,我在所有页面和所有部分视图中调用这个部分视图......

部分视图显示在页面中并且还使用模态弹出窗口......所以我尝试了这个但是部分视图中的就绪事件没有触发

我有几件事要问:

  • 首先,是否有可能做我想做的事情......
  • 有些页面有部分视图,因此一个页面有两个 $(document).ready() 事件,所以当页面加载时,这两个事件之间是否有任何冲突......

如果某个机构可以提供一些例子......

4

3 回答 3

6

是的,您可以在页面上包含多个就绪事件处理程序。您可以将它们放在站点主视图、部分视图和视图页面本身中——只要您需要。它们都必须包含在脚本标签中。它们将按照它们包含在最终呈现页面中的顺序触发。请注意,您要小心确保在页面上只包含一次部分内容,或者多次调用该处理程序并不重要。

示例(不完整):

掌握:

 <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" )

部分(错误对话框)

 <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>
于 2011-08-06T13:27:33.663 回答
5

是的,您可以$(document).ready()在一个页面中有多个,只需确保在调用此函数之前已包含 jquery 文件。Functions在内部$(document).ready() 按照请求的顺序调用。

jQuery - 多个 $(document).ready ...?

于 2011-08-06T13:24:02.490 回答
1

是的,没错,只要之前的局部视图没有任何错误,您就可以拥有任意数量的 $(document).ready() 并且它会为所有人触发。

于 2015-05-14T01:55:49.617 回答