Jquery对话框 - 对象不支持此属性或方法

时间:2011-03-03 13:40:44

标签: jquery jquery-ui dialog

我的这段代码工作正常,直到我升级到Jquery更新的版本。现在我犯了错误。

 <link rel="stylesheet" type="text/css" href="site.css" />
    <link type="text/css" href="css/smoothness/jquery-ui-1.8.10.custom.css" rel="stylesheet" />
    <link rel="stylesheet" type="text/css" href="css/ddsmoothmenu.css" />   
     <script type="text/javascript" src="js/jquery-1.4.4.min.js"></script>
    <script type="text/javascript" src="js/jquery-ui-1.8.10.custom.min.js"></script>    
    <script type="text/javascript" src="js/ddsmoothmenu.js"></script>

    <script type="text/javascript">    
         $(document).ready(function(){     
                $('#dialog').dialog({
                    modal: true,
                    autoOpen: false,
                    width: 760,
                    height: 'auto',             
                    close: function(event, data) {
                        $('#mainFrame')[0].src = "LoadingPage.aspx";
                    }
                });
                $('a[name="dia"]').click(function(){
                    $('#mainFrame')[0].src = this.file;
                    $('#dialog').data('title.dialog', this.innerText); 
//                    $('#dialog').data('width.dialog', this.diaWidth); 
//                    $('#dialog').data('height.dialog', this.diaHeight); 
                    $('#dialog').dialog('open');
                    return false;
                });             

                if (document.getElementById('hidIsAdmin').value == "1"){
                    document.getElementById('liAdmin').style.display = 'block';
                    document.getElementById('liReports').style.display = 'block';
                }else {
                    $('#liAdmin').remove();
                    $('#liReports').remove();

                }
                if (document.getElementById('hidCreate').value == "1"){
                    document.getElementById('liCreate').style.display = 'block';
                }else {
                    $('#liCreate').remove();
                    $('.edit_icon_link').hide(0);                   
                }
            });
            function hideEditIcon(){
                $('.edit_icon_link').hide(0);                   
            }            
    </script>

5 个答案:

答案 0 :(得分:3)

我发生了类似的事情(将MVC3 ASP转换为Razor),在我的例子中,将我的jquery-1.4.4.min.js引用移动到我的母版页有帮助。

我说“帮助”因为现在开放工作,但$(this).dialog("close");没有。

function ShowPopUp(strDivName)
{
    $("div[id$='" + strDivName + "']").dialog(
        {
            title: "blah blah blah",
            width: 600,
            modal: true,
            resizable: true,
            closeOnEscape: false,
            buttons:
            {
                "Save": function () { SaveThis(); $(this).dialog("close"); },
                "Cancel": function () { $(this).dialog("close"); }
            }
        }
    );
    $("div[id$='" + strDivName + "']").dialog("open");
}

答案 1 :(得分:0)

检查可用于对话框的选项,我认为autoResize已重命名为可调整大小。

答案 2 :(得分:0)

您有可能没有关闭$(document).ready(function(){吗?

您上面显示的});会关闭$('#dialog').dialog({,但我看不到$(document).ready(function(){的结束。

答案 3 :(得分:0)

我在IE8中遇到了这个问题,因为我在HTTPS页面上,但是从HTTP CDN加载了jquery-ui包。我一改变了网址

http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js

https://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js

它开始工作了。

答案 4 :(得分:0)

我现在正在使用MVC4。所以我必须将 jquery-ui-1.8.20.js 添加到App_Start下的BundleConfig.RegisterBundles()以使其正常工作:

bundles.Add( new ScriptBundle( "~/bundles/jquery" ).Include(
  "~/Scripts/jquery-{version}.js",
  "~/Scripts/jquery-ui-1.8.20.js" ) );