Jquery - 等待用户输入

时间:2010-01-09 10:17:26

标签: javascript jquery user-interface popup

我试图制作一个弹出窗口来确认用户操作(例如删除表格中的一行......)。旨在使弹出窗口完全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>");
    }

仍然不确定如何进行确认。弹出窗口应该包含是和否按钮。

1 个答案:

答案 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);
}