我有一个简单的html代码片段
<div style="display:none;" id="link_to_list"></div>
<a href="#" onclick="save_onclick()">
Back to List
</a>
一个简单的jquery函数,用于处理点击。
function save_onclick() {
$( "#link_to_list" ).dialog({
title:'Are you sure you don\'t want to save?',
resizable: false,
height:140,
modal: true,
buttons: {
Ok: function() {
window.location.href = "findUsers";
$( this ).dialog( "close" );
},
Cancel: function() {
$( this ).dialog( "close" );
}
}
});
}
当我第一次点击时,它可以工作,但div“link_to_list”擦除,我不能再次调用它。我怎么能绕过这个?
答案 0 :(得分:3)
我认为问题可能是在第二次点击时您尝试重新初始化对话框(再次,如果我正确回想起来)将无效。相反,您可以先设置对话框,然后让点击处理程序打开对话框。
$( "#link_to_list" ).dialog({
title:'Are you sure you don\'t want to save?',
resizable: false,
height:140,
autoOpen: false,
modal: true,
buttons: {
Ok: function() {
window.location.href = "findUsers";
$( this ).dialog( "close" );
},
Cancel: function() {
$( this ).dialog( "close" );
}
}
});
function save_onclick() {
$('#link_to_list').dialog('open');
}
答案 1 :(得分:3)
$(本).dialog( “破坏”)
完全删除对话框功能。这将使元素返回到pre-init状态。
$(本).dialog( “关闭”)
关闭对话框
答案 2 :(得分:0)
Mark的答案有效但是如果你用x按钮关闭它就不起作用了。不要使用破坏。将autoOpen设置为false,调用对话框,然后在单独的调用中打开
$( "#dialog" ).dialog({
autoOpen: false,
show: "blind",
hide: "explode"
});
$( "#opener" ).click(function() {
$( "#dialog" ).dialog( "open" );
return false;
});