对象不支持属性或方法“对话框”(Object doesn't support propert

2019-08-18 02:55发布

它交给AjaxControlToolkit ,我创建从一个MVC UI对话框。

Layout.cshtml

 <head>
   <meta charset="utf-8" />
   <title>@ViewBag.Title - My ASP.NET MVC Application</title>
   <link href="../../Content/smoothness/jquery-ui-1.10.2.custom.css" rel="stylesheet" type="text/css" />
   <script src="../../Scripts/jquery-1.9.1.js" type="text/javascript"></script>
   <script src="../../Scripts/jquery-ui-1.10.2.custom.min.js" type="text/javascript"></script>
   <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
   <meta name="viewport" content="width=device-width" />
   @Styles.Render("~/Content/css")
   @Scripts.Render("~/bundles/modernizr")
</head>

Index.cshtml

<h2>jQuery UI Hello World</h2>          
<button id="show-dialog">Click to see jQuery UI in Action</button>            
<div id="dialog" title="jQuery UI in ASP.NET MVC" >  
  <p>You now have the power of ASP.NET, the simplicity of client-side scripting with jQuery, and the looks of jQuery UI. Congrats, web slinger!</p>  
</div>  

<script language="javascript" type="text/javascript">
  $(function () {
    $('#dialog').dialog({
      autoOpen: false,
      width: 600,
      buttons: {
        "Ok": function () { $(this).dialog("close"); },
        "Cancel": function () { $(this).dialog("close"); }
      }
    });
    $("#show-dialog").button().click(function () {
        $('#dialog').dialog('open');
        return false;
    });
  });  
</script>    

我都在IE和Firefox检查。 火狐抛出

类型错误$(...)。对话框不是一个函数

IE抛出

对象不支持属性或方法“对话框”

有什么建议?

Answer 1:

3件事情浮现在脑海中,可能是值得一试:

  1. 千万不要硬编码在ASP.NET MVC应用程序的URL。 总是使用(其被推荐或束)助手:

     <head> <meta charset="utf-8" /> <title>@ViewBag.Title - My ASP.NET MVC Application</title> <link href="~/Content/smoothness/jquery-ui-1.10.2.custom.css" rel="stylesheet" type="text/css" /> <script src="~/Scripts/jquery-1.9.1.js" type="text/javascript"></script> <script src="~/Scripts/jquery-ui-1.10.2.custom.min.js" type="text/javascript"></script> <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" /> <meta name="viewport" content="width=device-width" /> @Styles.Render("~/Content/css") @Scripts.Render("~/bundles/modernizr") </head> 
  2. 确保在你结束_Layout.cshtml你没有@Scripts.Render("~/bundles/jquery")调用,因为这将包括jQuery的两倍。

  3. 如果在你的结束_Layout.cshtml你有像自定义脚本专用部分@RenderSection("scripts", required: false) ,请确保您已放置在您的自定义脚本在这一节中(请注意,因为这是RenderSection在DOM的结束时,你千万不要因为它所执行的时候就需要在事件的document.ready包裹你的脚本,在DOM就已经被加载):

     <h2>jQuery UI Hello World</h2> <button id="show-dialog">Click to see jQuery UI in Action</button> <div id="dialog" title="jQuery UI in ASP.NET MVC" > <p>You now have the power of ASP.NET, the simplicity of client-side scripting with jQuery, and the looks of jQuery UI. Congrats, web slinger!</p> </div> @section scripts { <script type="text/javascript"> $('#dialog').dialog({ autoOpen: false, width: 600, buttons: { "Ok": function () { $(this).dialog("close"); }, "Cancel": function () { $(this).dialog("close"); } } }); $("#show-dialog").button().click(function () { $('#dialog').dialog('open'); return false; }); }); </script> } 


Answer 2:

就我而言,是这个错误,因为我忘了添加了jQuery UI的文件参考:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/jquery-ui.min.js" type="text/javascript"></script>


Answer 3:

这种情况通常发生在你忘记添加jquery-ui.js 。 包括顺序jquery-ui-{version}.js也很重要!

你应该包括jquery-{version}.js然后jquery-ui-{version}.js 。 然后,之前</body>标签,包括您的自定义JavaScript文件。

这将解决JavaScript运行错误: 对象不支持属性或方法“对话框”],[“$” 是未定义 ]



Answer 4:

您的代码看起来不错给我。 你可以检查你的jQuery用户界面的自定义包含对话框功能(或尝试下载完整的jQuery UI的用于测试目的),并检查URI的JS脚本是正确的。



Answer 5:

包括这些三行代码:

<link rel="stylesheet" href="//code.jquery.com/ui/1.11.2/themes/smoothness/jquery-ui.css" />
<script src="//code.jquery.com/jquery-1.10.2.js" type="text/javascript"></script>
<script src="//code.jquery.com/ui/1.11.2/jquery-ui.js" type="text/javascript"></script>


文章来源: Object doesn't support property or method 'dialog'