此代码有效,但需要单击“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;
});
});
答案 0 :(得分:6)
您尝试在初始化之前打开对话框!
首先单击,对话框初始化。
$("#del-"+id+"").dialog("open"); // does nothing
// init the dialog but does not open because autoOpen: false
$("#del-"+id+"").dialog(dialogOpts);
第二次点击它终于打开了。
要么,请在初始化之后和return false;
$("#del-"+id+"").dialog(dialogOpts);
$("#del-"+id+"").dialog("open");
return false;
或将选项autoOpen
更改为true并删除“打开”方法调用
//$("#del-"+id+"").dialog("open");
var dialogOpts = {
...
autoOpen: true,
...
};
$("#del-"+id+"").dialog(dialogOpts);
答案 1 :(得分:1)
在对话框全部设置之前,您似乎正在调用对话框(“打开”)。因此,您必须再次单击该按钮才能打开它。
试试这个。
$(document).ready(function(){
$(".genbutton-delete").click(function(){
var id = $(this).attr("id");
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);
$("#del-"+id+"").dialog("open");
return false;
});
答案 2 :(得分:1)
其他答案是正确的但是从你的代码中我可以看到没有必要初始化并单独显示它,特别是如果你使用的是最新版本的jQuery-UI那么你甚至不用担心打开或关闭它为对话重用相同的元素。
$(document).ready(function(){
$(".genbutton-delete").click(function(){
var id = $(this).attr("id");
$("#del-"+id+"").dialog({
modal: true,
bgiframe: true,
autoOpen: true,
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();
}
});
return false;
});
});