我搜索并找不到解决方案。希望我忽略了一些简单的事情。
我所追求的是标准的jquery确认,la:
$('.confirm').click(function(){
var answer = confirm('Delete '+jQuery(this).attr('title'));
return answer // answer is a boolean
});
但是,我想将SimpleModal用于警报窗口。我可以让SimpleModal显示并工作,如果我做任何事情除了尝试并获得原始href继续,如果在SimpleModal对话框中点击“是”。
目前的代码.....
jQuery(function ($) {
$('.confirm').click(function (e) {
e.preventDefault();
confirm("", function () {
//alert('yes');
$('.confirm').trigger('click');
});
});
});
function confirm(message, callback) {
$('#confirm').modal({
closeHTML: "<a href='#' title='Close' class='modal-close'>x</a>",
position: ["20%",],
overlayId: 'please-wait',
containerId: 'confirm-container',
onShow: function (dialog) {
var modal = this;
$('.message', dialog.data[0]).append('Delete '+$('a.confirm').attr('title'));
// if the user clicks "yes"
$('.yes', dialog.data[0]).click(function () {
// call the callback
if ($.isFunction(callback)) {
callback.apply();
}
// close the dialog
modal.close();
});
}
});
}
我还在确认功能中注释了一个警告。警报确实有效。但是如何让浏览器继续使用原始的href?
谢谢!
答案 0 :(得分:1)
首先,您需要修改点击处理程序以传递链接的网址:
jQuery(function ($) {
$('.confirm').click(function (e) {
e.preventDefault();
confirm($(this).prop("href"), "", function () {
$('.confirm').trigger('click');
});
});
});
如果您使用的是jQuery 1.6或更低版本,请使用$(this).attr("href")
代替.prop()
然后修改函数以使用该URL:
function confirm(url, message, callback) {
$('#confirm').modal({
closeHTML: "<a href='#' title='Close' class='modal-close'>x</a>",
position: ["20%",],
overlayId: 'please-wait',
containerId: 'confirm-container',
onShow: function (dialog) {
var modal = this;
$('.message', dialog.data[0]).append('Delete '+$('a.confirm').attr('title'));
// if the user clicks "yes"
$('.yes', dialog.data[0]).click(function () {
// call the callback
if ($.isFunction(callback)) {
callback.apply();
}
// close the dialog
modal.close();
// transfer to the url:
window.location.assign(url);
});
}
});
}