为什么这个jQueryUI对话框在IE9中不起作用?

时间:2012-02-03 00:17:17

标签: jquery internet-explorer internet-explorer-9

以下代码在Firefox,Chrome和Opera中生成预期的jQueryUI模式弹出对话框。但是,它在Internet Explorer 9中失败:

<html><head>

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/themes/base/jquery-ui.css" type="text/css" media="all" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js"></script>

<script type="text/javascript">
$(function() {
    $( "#AddUser" ).dialog({
        autoOpen: false, modal: true, height: 'auto', width: 400,
        buttons: {
            "Add": function() {
                alert("Add one!");
            }
        },
        close: function() {
            allFields.val( "" ).removeClass( "ui-state-error" );
        }
    });

    $( "#AddUserButton" ).button().click(function(event) {
        event.preventDefault();
        $( "#AddUser" ).dialog( "open" );
    });


});
</script>

</head><body>

<div id="AddUser" title="Add User">Popup content here</div>
<input type="submit" id="AddUserButton" />

</body></html>

在IE 9中,#AddUser div不是jQueryUI对话框。有什么我想念的吗?

编辑:代码已更新,更接近生产代码。

感谢。

4 个答案:

答案 0 :(得分:10)

你的问题是尾随“,”IE不喜欢它

 $( "#AddUser" ).dialog({
                   autoOpen: false, modal: true >>,<<
            });

这将有效:

 $( "#AddUser" ).dialog({
                   autoOpen: false, modal: true
            });

答案 1 :(得分:5)

尝试在html文件中添加DOCTYPE。 <!DOCTYPE HTML>

答案 2 :(得分:1)

好的,这只是一个猜测,但是类型=“提交”有时候很奇怪...

你尝试过: <button id="AddUserButton">AddUser</button>

我也会将“preventDefault”称为动作监听器中的最后一个动作。

答案 3 :(得分:0)

我在对话框中遇到了同样的问题,并在css文件中添加以下内容为我完成了这项工作。

.ui-widget-overlay
{
        z-index: 0 !important;   
}