在Partial View中定义jquery ready事件

时间:2011-08-06 13:20:40

标签: jquery asp.net-mvc partial-views document-ready domready

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

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

我有几件事要问:

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

如果有些身体可以提供一些例子......

3 个答案:

答案 0 :(得分:5)

是的,您可以在页面上包含多个就绪事件处理程序。您可以将它们放在站点主页,部分视图和视图页面中 - 尽可能多地使用它们。它们必须全部包含在脚本标记中。它们将按照它们包含在最终呈现页面中的顺序触发。注意,您要小心确保部分仅在页面上包含一次,或者如果多次调用该处理程序并不重要。

示例(未完成):

站长:

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

答案 1 :(得分:4)

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

jQuery - multiple $(document).ready ...?

答案 2 :(得分:1)

是的,没错,只要上一个局部视图没有任何错误,你可以拥有任意数量的$(document).ready(),它将为所有人开火。