说我有以下链接:
<a onclick="confirmDelete()" href="delete.do&xyz">Delete user</a>
以下是confirmDelete函数:
function confirmDelete()
{
if(!confirm("delete user?"))
{
return false;
} else
{
return true;
}
}
基本上,当点击链接时,它会检查用户是选择确定还是取消,然后根据它执行。
问题:我的平台上有数百个类似的链接,我们决定将所有的javascript警报转到jquery对话框。
我使用以下内容覆盖警报:
$(function(){
window.confirm = function(message) {
$('#overrideAlert').text(message).dialog({
resizable: false,
modal: true,
buttons: {
"Ok": function() {
$( this ).dialog( "close" );
},
Cancel: function() {
$( this ).dialog( "close" );
}
}
});
};
});
它运行正常,警报出现在jquery对话框中,但问题是因为无法从像对话框这样的处理程序返回内容,我不知道如何在文件中告诉我的按钮,用户选择确定或取消。
基本上我不确定如何将它们全部链接在一起。
请帮忙
答案 0 :(得分:1)
问题是因为javascript异步性质。当你使用jQuery时。可以尝试以下方法。
$('a[onclick="confirmDelete()"]')
.attr('onclick','')
.click( function(){
var anch = this,
message = "delete user?";
$('#overrideAlert').text(message).dialog({
resizable: false,
modal: true,
buttons: {
"Ok": function() {
$( this ).dialog( "close" );
alert( "window.location=" + anch.href );
},
Cancel: function() {
$( this ).dialog( "close" );
}
}
});
return false ;
});
我制作了jsfiddle http://jsfiddle.net/wB389/
答案 1 :(得分:0)
也许是这样:
"Ok": function() {
window.location=deleteURL;
$( this ).dialog( "close" );
},
可能有点复杂,因为你使用相对url,但你可以使用window.location.protocol + window.location.port + window.location获取当前url。 window.location.host + window.location.pathname