我有一个jquery ui对话框我想用来提示用户确认删除.当用户按下"是"或"否"时,我需要返回"True"或"False"以继续执行一些javascript.下面的代码的问题是当对话框显示它立即执行"return true"时 但用户还没按下"是"按钮呢?
我究竟做错了什么?
HTML:
<div id="modal_confirm_yes_no" title="Confirm"></div>
Run Code Online (Sandbox Code Playgroud)
Javascript电话:
$("#modal_confirm_yes_no").html("Are you sure you want to delete this?");
var answer = $("#modal_confirm_yes_no").dialog("open");
if (answer)
{
//delete
}
else
{
//don't delete
}
Run Code Online (Sandbox Code Playgroud)
Jquery对话框:
$("#modal_confirm_yes_no").dialog({
bgiframe: true,
autoOpen: false,
minHeight: 200,
width: 350,
modal: true,
closeOnEscape: false,
draggable: false,
resizable: false,
buttons: {
'Yes': function(){
$(this).dialog('close');
return true;
},
'No': function(){
$(this).dialog('close');
return false;
}
}
});
Run Code Online (Sandbox Code Playgroud)
Nea*_*eal 38
javascript是异步的.
所以你必须使用回调:
$("#modal_confirm_yes_no").dialog({
bgiframe: true,
autoOpen: false,
minHeight: 200,
width: 350,
modal: true,
closeOnEscape: false,
draggable: false,
resizable: false,
buttons: {
'Yes': function(){
$(this).dialog('close');
callback(true);
},
'No': function(){
$(this).dialog('close');
callback(false);
}
}
});
function callback(value){
//do something
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
39675 次 |
| 最近记录: |