JQuery UI dialog - *Dialog not a function* error

前端 未结 7 616
天命终不由人
天命终不由人 2021-01-01 17:35

I am developing a site using pinax. In one of my templates I am trying to open a simple jquery dialog box. However I keep getting the \"Dialog not a function\" javascript er

相关标签:
7条回答
  • 2021-01-01 17:48

    I tried to duplicate your error both by using the public google versions and by downloading the legacy (1.6) version from the jQuery UI site and manually including the files. Neither caused a problem (http://jsbin.com/uloqi to see it working).

    So, that means one of the following might solve your problem:

    1. Use a tool like Firebug for Firefox to verify each JS file is being included.
    2. Make sure there is no other JS on the page that could cause an error.
    3. Verify you have the correct versions of the files downloaded.

    I don't know what else to tell you since the code you pasted, when paired with the right files, works perfectly.

    0 讨论(0)
  • 2021-01-01 17:48

    Under certain circumstances you can get this error if multible and different JQuery version are loaded at the same time.

    In my case I has a ASP page that used a master. My master was including JQuery 1.4.2.min My aspx page I included JQuery 1.7.2.min

    When JQuery functions were called from a control, it got confused about which JQuery to use so even though that script could state that JQuery was loaded ( it could display the JQuery version ), it failed to find any JQuery functions.

    When I removed my local JQuery 1.7.2.min inclusion out of my aspx file, and updated my mater from 1.4.2.min to 1.7.2.min, the problem went away.

    0 讨论(0)
  • 2021-01-01 17:49

    I had the exact same problem as the one described above (messagebox only opens once). The problem i had was that the html in the messagebox also loads jquery. Since i don't needed it i could remove it without problems. Otherwise you might have to pin down the problem a bit further.

    0 讨论(0)
  • 2021-01-01 17:56

    I just have this issue too and the only solution that works for me was to save the dialog reference like:

    var confirmDialog = $( "#dialog-confirm" ).dialog({
        autoOpen: false
    });
    $("#test").click(function () {
        confirmDialog.dialog('open');
    });
    

    Otherwise, everything I've tried failed with

    .dialog() is not a function error
    Hope this help.

    0 讨论(0)
  • 2021-01-01 18:07

    The answer by Doug Neiner helped really. My case was a bit more complicated, but still comes to same point:

    I opened a dialog from Page A which loads Page B like this:

    $('#MyDiv').dialog({
        autoOpen: false
    })
    $("#MyDiv").load("PageB.aspx", function () {
        $("#MyDiv").dialog("open");
    });
    

    The problem is that both Page A and B had included jQuery. Be aware: if you are loading another page into a dialog, it does not need to include same js.

    0 讨论(0)
  • 2021-01-01 18:08

    I had the same problem. Mine was self inflicted from a jQuery UI update from 1.11.4 to 1.12.1. I installed the upgrade using NuGet and NuGet removed the old 1.11.4 reference from my project but never added the new project reference.

    Running locally the application worked great, but when deploying it the new 1.12.1 file never made it with the publish. I hope this helps someone else.

    0 讨论(0)
提交回复
热议问题