Jquery Dialog Ok按钮不工作firefox但在IE中工作

时间:2012-01-13 12:44:19

标签: jquery

我打开一个带有按钮点击事件的对话框。对话框包含确定和取消按钮。在IE中它工作正常但在firefox对话框中打开'取消'按钮正在工作,但'确定'按钮什么也没发生。

下面是我打开对话框的按钮代码。

$('#addImage').click(function ()
{
    var url = 'Default.aspx'; 
    var d = $('#dialog_img').html('<iframe id="ifrm" , width = 540 , height = 170></iframe>');
    $("#dialog_img>#ifrm").attr("src", url);
    d.dialog('open').dialog({ modal: true ,width: 560,resizable: false , 
        buttons: 
        {
            'OK': function() {
                 var img = document.createElement('img');
                $(img).attr("id", "dyndiv" + count);
                $(img).attr("width", 30);
                $(img).attr("height", 50); 
                $(img).attr("src", 'Uploads/'+window.frames['ifrm'].document.getElementById('dvFileName').innerHTML) ;
                var $ctrl = $(img).resizable({ containment: '#containment-wrapper'}).parent().addClass("resizable mydiv").draggable({
                    containment: '#containment-wrapper',
                    cursor: 'move',
                    delay: 200,
                    distance: 30,
                    opacity: 0.35
                })
                objid = "dyndiv" + count;
                $(img).css("z-index" , $(img).css("z-index") + count );
                $('#sel_obj_text').val("Image");
                image_visibility();
                count++; 
                $("#containment-wrapper").append($ctrl);
                $('#' + objid).parent().css("position","relative"); 
                $('#' + objid).parent().position({
                    of: $( "#containment-wrapper" ),
                    my: "center" + " " + "center",
                    at: "center" + " " + "center"
                });                   

                $(this).dialog('destroy');
            },
            'Cancel': function() {
                $(this).dialog('destroy');
            }
        }
    });
}); 

3 个答案:

答案 0 :(得分:1)

;声明后,您错过了分号($ctrl)。

在原始代码中,这一行:

var $ctrl = $(img).resizable({ containment: '#containment-wrapper'}).parent().addClass("resizable mydiv").draggable({ containment: '#containment-wrapper', cursor: 'move',delay: 200,distance: 30, opacity: 0.35})

在编辑过的代码中:

var $ctrl = $(img).resizable({ containment: '#containment-wrapper'}).parent().addClass("resizable mydiv").draggable({
    containment: '#containment-wrapper',
    cursor: 'move',
    delay: 200,
    distance: 30,
    opacity: 0.35
})  // <-- Missing semi-colon (;)

答案 1 :(得分:1)

您应该使用$(this).dialog('close');而不是$(this).dialog('destroy');,以便在单击按钮时不会再次创建对话框。

答案 2 :(得分:0)

单击“确定”按钮后,图像将显示在由块'containment-wrapper'创建的$ctrl中。它适用于FF,IE。我能在这看到这个。您可以在firebug的帮助下详细查看代码停止的位置。鉴于代码被破坏(因为代码在这里是错误和复杂的。image_visibility(); count++未在提供的代码中定义。)