Jquery 对话框仅在第三次单击后才有效

Jquery dialog works only after the third click

我的 jquery 对话框有问题,因为它只有在第三次单击后才能打开。谁能帮忙?这是片段。当自动打开设置为真时,它会起作用。但它使用 auto open true 会产生另一个问题。我不知道我的代码有什么问题。每次单击都会调用此特定函数。 谢谢。

    function attachmentDialogBox(objId){
    var parentDiv = objId;
    if(parentDiv!=''){
        var source = $("#"+parentDiv+" input[name=sourceId]").val();
        var type = $("#"+parentDiv+" input[name=typeId]").val();
    }
    else{
        var source = $("input[name=sourceId]").val();
        var type = $("input[name=typeId]").val();
    }
    $.ajax({
        url:"${createLink(controller: "fileAttachment",action: "rAttachmentDialog")}",
        data:{id:"${id}",module:"${module}",moduleType:"${moduleType}",source:"${source}",sourceId:source,attachmentUrl:"${attachmentUrl}",multiple:"${multiple?:1}",type:type},
        type:"post",
        success:function(data){
            $("#attachDocument").html(data);
            $("#attachDocument").dialog({
                title:"${module=="memberProfilePic"?"Upload Profile Image":"Attach Document"}",
                zIndex:1103,
                modal:true,
                autoOpen:false,
                width:"${module=="memberProfilePic"?355:"auto"}",
                resizable:false,
                draggable:false,
                close:function(){
                    $("#attachDocument").remove();
                    $("#dialogContainer").append("<div id='attachDocument'></div>");
                }
            });
            alert($("#attachDocument").val);
            $("#attachDocument").dialog('open');
        }
    });

    return false;
}

尝试将其更改为:

var dialog $("#attachDocument").dialog({...}); 
dialog.dialog("open"); 

我不完全确定 $().dialog() returns 实例,但如果是,它应该是更安全的方法

更改为通过评论中的建议找到的解决方案。