对话框加载 - TypeError:$(...)不是函数

时间:2015-04-16 10:37:43

标签: jquery jquery-ui

我的jQuery出了问题。我已设法使用UI库打开一个对话框窗口。但是,我看到了错误:

  

TypeError:$(...)。dialog不是common-jquery.js函数:87

我认为这可能与我的代码的加载部分有关,但我不确定为什么会导致问题。

$(document).ready(function() {

    // function for listening for clicks on apply buttons
    $(document).on('click', '[name*="apply"]', function() {
        var $the_dialog = $(this).create_new_dialog();

        // open the dialog and load the page.
        $the_dialog.dialog('open')
        .load('test.py', function() {
            $the_dialog.unbind('click');
            //alert('Page has loaded');
            $the_dialog.dialog('close');
        });

        return false;
    });
});

jQuery.fn.extend({

    create_new_dialog: function() {
        var $the_dialog = $('<div></div>')
            .dialog({
                // dialog box options...
                autoOpen: false,
                closeOnEscape: false,
                dialogClass: 'no-close',
                draggable: false,
                modal: true,
                height: 500,
                width: 500,
                resizable: false,
                buttons: [{
                    text: "Close",
                    click: function() {
                        $(this).dialog('close');
                    }
                }]
            });
        return $the_dialog;
    }
});

当我点击关闭按钮时,我收到错误。但是,如果我封装了 setTimeout 块内的close,则对话框窗口会消失,但我无法使用页面上其他任何javascript / jQuery。

我很感激你可以解决这个错误。

1 个答案:

答案 0 :(得分:0)

请务必插入完整版的jQu​​ery UI。您还应首先启动对话框:

$(function () {
  $( "#dialog1" ).dialog({
  autoOpen: false
});

$("#opener").click(function() {
    $("#dialog1").dialog('open');
  });
});