jQuery onclick必须单击两次才能显示模式对话框

Mil*_*lev 1 jquery events triggers click

此代码有效,但需要单击"genbutton-delete"类的元素两次才能工作.有人可以帮帮我吗?

$(document).ready(function(){                                                                                                                               
$(".genbutton-delete").click(function(){                                                                                                                
    var id = $(this).attr("id");                                                                                                                        
    $("#del-"+id+"").dialog("open");                                                                                                                    
    var dialogOpts = {                                                                                                                                  
        modal: true,                                                                                                                                    
        bgiframe: true,                                                                                                                                 
        autoOpen: false,                                                                                                                                
        width: 400,                                                                                                                                     
        buttons: {                                                                                                                                      
            "Delete": function() {                                                                                                                      
                $.ajax({                                                                                                                                
                    type: "post",                                                                                                                       
                    url: ""+siteURL+"/a/delete?media="+id+"",                                                                                           
                    data: "delete=1",                                                                                                                   
                    success: function(data) {location.href="?delete=1";}                                                                                
                });                                                                                                                                     
            },                                                                                                                                          
            "Cancel": function() {$(this).dialog("close");}                                                                                             
        },                                                                                                                                              
        open: function() {                                                                                                                              
            $("#del-"+id+"").load(""+siteURL+"/a/delete?media="+id+"");                                                                                 
            $("#loader-"+id+"").show();                                                                                                                 
        }                                                                                                                                               
    };                                                                                                                                                  
    $("#del-"+id+"").dialog(dialogOpts);                                                                                                                
    return false;                                                                                                                                       
});                                                                                                                                                     
Run Code Online (Sandbox Code Playgroud)

});

Did*_*hys 6

您尝试在初始化之前打开对话框!

首先单击,对话框初始化.

$("#del-"+id+"").dialog("open"); // does nothing
// init the dialog but does not open because autoOpen: false
$("#del-"+id+"").dialog(dialogOpts);  
Run Code Online (Sandbox Code Playgroud)

第二次点击它终于打开了.


或者,在init之后和之前将调用移至方法"open"return false;

$("#del-"+id+"").dialog(dialogOpts);
$("#del-"+id+"").dialog("open");
return false;
Run Code Online (Sandbox Code Playgroud)

或者将选项更改autoOpen为true并删除"打开"方法调用

//$("#del-"+id+"").dialog("open");                                                                                                                    
var dialogOpts = {                                                                                                                                  
    ...                                                                                                                               
    autoOpen: true,                                                                                                                                
    ...                                                                                                                                               
};                                                                                                                                                  
$("#del-"+id+"").dialog(dialogOpts);
Run Code Online (Sandbox Code Playgroud)