我试图制作一个弹出窗口来确认用户操作(例如删除表格中的一行......)。旨在使弹出窗口完全HTML和Javascript。我无法理解的是我如何让javascript等待用户输入,但仍然可以用于其他javascript事件。 (其他点击触发的东西等...)。我以为我会做的就是
if(makePopup("Are you sure?") == true) {
//bla bla
}
其中makePopup函数会创建一个包含传递给它的字符串的弹出窗口,并为用户提供yes或no选项。在该函数的某处,我需要一个等待用户单击是或否的循环。代码只是在那一行等待,直到完成某事。这就是我想要的...但是我的问题..如果代码卡在那里的循环中,jquery如何执行其他任务?例如,如果弹出框可以拖动怎么办?当代码忙于循环时,如何触发这些效果的事件..?我现在无法解决问题。
这是我目前要测试的东西..
$(document).ready(function(){
$('a').click(function(){
makePopup("Wana go to google?",function(){
window.location.replace("http://www.google.com");
});
});
});
function makePopup(msg,callback){
$('body').append("<div class='popup'><p>"+msg+"</p></div>");
}
仍然不确定如何进行确认。弹出窗口应该包含是和否按钮。
答案 0 :(得分:8)
你可以实现类似的东西
makePopup("Are you sure?", function {
//bla bla
});
只有在用户确定,点击按钮或其他任何内容后才会调用您的回调。 Smth喜欢:
function makePopup(msg, callback) {
$("#sureformmsg").html(msg);
$("#sureform").show().submit(function() { if (..check..) callback(); });
}
你的例子:
$(document).ready(function(){
$('a').click(function(){
makePopup("Wana go to google?",function(){
window.location.replace("http://www.google.com");
});
});
});
function makePopup(msg,callback){
$('body').append("<div class='popup'><p id='themsg'>"+msg+"</p></div>");
$('#themsg').onclick(callback);
}