Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对话框不是函数(如何显示自定义对话框)_Javascript_Jquery - Fatal编程技术网

Javascript 对话框不是函数(如何显示自定义对话框)

Javascript 对话框不是函数(如何显示自定义对话框),javascript,jquery,Javascript,Jquery,我想在我的web应用程序上显示一个自定义对话框。所以我在构建这个代码: <script type="text/javascript"> var mappaRisposte = @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(ViewBag.mappaRisposte)); ConfirmDialog('Are you sure'); function ConfirmDialog(message)

我想在我的web应用程序上显示一个自定义对话框。所以我在构建这个代码:

<script type="text/javascript">

     var mappaRisposte = @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(ViewBag.mappaRisposte));
    ConfirmDialog('Are you sure');

    function ConfirmDialog(message) {
        $('<div></div>').appendTo('body')
            .html('<div><h6>' + message + '?</h6></div>')
            .dialog({
                modal: true,
                title: 'Delete message',
                zIndex: 10000,
                autoOpen: true,
                width: 'auto',
                resizable: false,
                buttons: {
                    Yes: function () {
                        // $(obj).removeAttr('onclick');                                
                        // $(obj).parents('.Parent').remove();

                        $('body').append('<h1>Confirm Dialog Result: <i>Yes</i></h1>');

                        $(this).dialog("close");
                    },
                    No: function () {
                        $('body').append('<h1>Confirm Dialog Result: <i>No</i></h1>');

                        $(this).dialog("close");
                    }
                },
                close: function (event, ui) {
                    $(this).remove();
                }
            });
    }
</script>
我在控制台中遇到此错误:

TypeError: $(...).appendTo(...).html(...).dialog is not a function

据我所知,您尝试使用同一个对话框对象两次,但在第二次尝试中,您会得到一个错误

尝试保存实例全局(不在函数内),如:

然后像这样重复使用它:

myDialog.dialog("close"); // or maybe: myDialog.close();

目前,您正在函数上下文中使用“$(this).dialog(“close”);”。因此,“this”是函数,而不是对话框。

尝试使用
$(“#dialog”)。dialog('open')我已经更新了我的代码。特别是误差函数。在endFirstPartSummary()函数中,我调用了ConfirmDialog();在这种情况下,我得到了一个错误。
TypeError: $(...).appendTo(...).html(...).dialog is not a function
const myDialog = $("#dialog").dialog('open');
myDialog.dialog("close"); // or maybe: myDialog.close();