Jquery对话框仅在第三次单击后才起作用

时间:2015-07-23 05:47:37

标签: javascript jquery dialog

我的jquery对话框中存在问题,因为它仅在第三次单击后才会打开。有人可以帮忙吗?这是片段。当自动打开设置为true时,它可以工作。但它使用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;
}

1 个答案:

答案 0 :(得分:0)

尝试将其改为:

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

我不完全确定$()。dialog()返回实例,但如果确实如此,它应该是一个更安全的方法

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