2010-01-09 77 views
4

即时通讯尝试做出弹出窗口来确认用户操作(删除表中的一行,例如..)。旨在使弹出窗口完全HTML和Javascript。我无法得到我的头是如何我会让JavaScript等待用户输入,但仍然功能的其他JavaScript事件。 (其他点击触发的东西等)。什么我想我做的是一样的东西jquery - 等待用户输入

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>"); 
    } 

仍然不确定该怎么办确认的东西。弹出窗口应该包含一个yes和no按钮。

回答

7

可以实现这样的事情

makePopup("Are you sure?", function { 
    //bla bla 
}); 

这将调用你的回调仅当用户肯定,他点击一个按钮或什么之后。水木清华这样的:

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); 
} 
+0

你可以举一个例子,而无需使用一种形式?或者详细说明你给的那个。它看起来很不完整,我无法理解它.. – Prodigga 2010-01-09 10:45:56

+0

编辑我的帖子,告诉你我现在拥有什么。 – Prodigga 2010-01-09 10:48:43

+0

是的,改变了它。不是火箭科学,是吧? – 2010-01-09 12:04:02