此代码可以工作,但具有“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;
});
});
最佳答案
您尝试在初始化之前打开对话框!
第一次单击,对话框将被初始化。
$("#del-"+id+"").dialog("open"); // does nothing
// init the dialog but does not open because autoOpen: false
$("#del-"+id+"").dialog(dialogOpts);
第二次点击终于打开了。
<小时/>要么,将调用移至 init 之后、return false 之前;
$("#del-"+id+"").dialog(dialogOpts);
$("#del-"+id+"").dialog("open");
return false;
或者将选项autoOpen
更改为true并删除“open”方法调用
//$("#del-"+id+"").dialog("open");
var dialogOpts = {
...
autoOpen: true,
...
};
$("#del-"+id+"").dialog(dialogOpts);
关于jQuery onclick 必须单击两次才能出现模式对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9296552/