同步jquery调用 - 如何等待jquery方法执行竞争?

时间:2013-10-11 12:33:17

标签: javascript jquery dom custom-component

我是jQuery的新手。我正在使用自定义消息框。我使用过jQuery.msgBox()

现在我正试图像

那样使用它
function myFunction(){

    $.msgBox({
       title:"Custom Alert",
       content:"Hello World!"
    });

   /* some code goes here */
   // For example 
   alert("executing after Custom Alert..");
}

这两个都是异步调用的,两个Popup都显示了,

现在我想首先执行第一个jQuery块,然后显示警告框。

我读到的某个地方脚本是异步的,所以有任何解决方案可以同步调用。


是的,可以使用success / callback函数来完成。 但我想做的事情就像我们的基本'confirm()'方法

var r=confirm("Press a button!")
if (r==true)
  {
  alert("You pressed OK!")
  }
else
  {
  alert("You pressed Cancel!")
  }

所以它应该像...一样工作。

function myConfirm(message){

 $.msgBox({
     title: "Confirmation !!",
     content: message,
     type: "confirm",
     buttons: [{ value: "Yes" }, { value: "No" }],
     success: function (result) {
        if (result == "Yes") {
            return true;  // kindly...i dont know this is proper way to return value.. 
        }else{
            return false; // kindly...i dont know this is proper way to return value.. 
        }
     }
  });
}

现在,当我把它称为..我希望它像

var r = myConfirm("What do u like to choose?");

/* some operation will do on 'r' */
/* also to continue to next operation*/

之后,在返回值上我将进行下一步操作。 这可以使我们的自定义myConfirm()框方法像基本的confirm()方法一样工作。

2 个答案:

答案 0 :(得分:2)

尝试以下操作,在成功功能中提供警报并检查。

$.msgBox({
    title:"Custom Alert",
    content:"Hello World!",
    success: function () {
         alert("executing after Custom Alert..!");
    }
});

答案 1 :(得分:0)

您必须使用回调函数。你看到成功领域?这是来自jquery msgBox网站。

$.msgBox({
    title: "Are You Sure",
    content: "Would you like a cup of coffee?",
    type: "confirm",
    buttons: [{ value: "Yes" }, { value: "No" }, { value: "Cancel"}],
    success: function (result) {
        if (result == "Yes") {
            alert("One cup of coffee coming right up!");
        }
    }
});