undefined不是函数错误:$('#dialog')。dialog({?

时间:2015-01-16 06:39:59

标签: jquery asp.net-mvc modal-dialog typeerror

我遇到错误,说$("#dialog").dialog({未定义 我在一个新的MVC项目中做了同样的事情并且它有效。但当我将相同的代码移动到另一个MVC项目时,我收到此错误。 请帮忙。我添加了jquery UI脚本。但我仍然得到同样的错误。

<!DOCTYPE html>
<html lang="en">
    <head>
         <link href="~/Content/jquery-ui.css" rel="stylesheet" />
        <script type="text/javascript" src="/Scripts/jquery-1.10.2.min.js"></script>
        <body>
            <form class="form-horizontal" role="form">
.......
 </form>
<div id="dialog" title="Create Album" style="overflow: hidden;"></div>
        </body>
@section scripts{
    <script type="text/javascript">
        var InitialFacility = '@ViewBag.ID';
        $(document).ready(function () { 

            $('#tabs a').click(function(e) {
                e.preventDefault();
                $(this).tab('show');
            });

       $("#dialog").dialog({

                autoOpen: false,
                width: 400,
                resizable: false,
                title: 'hi there',
                modal: true,
                open: function (event, ui) {
                    //Load the CreateAlbumPartial action which will return 
                    // the partial view _CreateAlbumPartial
                    $(this).load('@Url.Action("GetRrfForm","FacilityAdd")');
                },
                buttons: {
                    "Close": function () {
                        $(this).dialog("close");
                    }
                }
            });

            $('#modal-opener').click(function () {
                $('#dialog').dialog('open');
            });
        });


    </script>
}
<div id="dialog" title="Create Album" style="overflow: hidden;"></div>

2 个答案:

答案 0 :(得分:0)

似乎你没有在你的HTML中包含jQuery UI。

您可以从jQuery UI网站下载它并将其保存在您的webapp中并将其包含在html中:

<script src="/<script_path_here>/jquery-ui.min.js"></script>

OR

使用Google CDN链接添加jQuery UI here

<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/themes/smoothness/jquery-ui.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.js"></script>

答案 1 :(得分:0)

使用

解决
<link href="~/Content/themes/base/jquery-ui.css" rel="stylesheet" />
 @Scripts.Render("~/bundles/jquery")
    <script src="~/Scripts/jquery-ui-1.8.24.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.js"></script>
_Layout中的

我也无法在对话框窗口中加载jqxdatatable。但那是因为我使用了不同的jquery-ui版本。 所以删除了第二个版本,只使用了jquery-ui-1.8.24.min.js