javascript确认框会先显示还是先显示jquery?

时间:2014-09-30 17:43:45

标签: javascript jquery

根据我的要求,首先我在javascript确认框中调用了jquery确认框。但jquery确认框不会显示,除非它显示或移动到后面的代码,我称之为javascript确认框。

所以我能够首先看到javascript确认框,然后显示jquery。 我不知道是否有优先检查。

请指导我。

这是我使用的代码:

     function doConfirm(msg, yesFn, noFn)  //called function
     {
         var confirmBox = $("#confirmBox");
         confirmBox.find(".message").text(msg);
         confirmBox.find(".yes,.no").unbind().click(function () {
             confirmBox.hide();
         });
         confirmBox.find(".yes").click(yesFn);
         confirmBox.find(".no").click(noFn);
         confirmBox.show();

         return false;
     }

     if (document.getElementById('hdnusertype').value == "5") 
         {
          //Confirm message for creating multiple absences for teachers login
             if (gridRows.length >= 1)
              {

            //calling the function
                  doConfirm("Do you want other dates you would like to create  Absence?", function yes() {

                      var chooser = igdrp_getComboById("wdcStartDate");
                      chooser.focus();
                      return false;
                  }, function no() {
                      // do nothing
                  });
            //javascript confirm box
           var i = confirm("You have selected " +   document.getElementById('hdnAbsenceDates').value + " absence days, Do you want to Continue?");

1 个答案:

答案 0 :(得分:0)

JQuery的确认框与本机JS的工作方式不同。 JS的confirm()阻止页面上每个其他脚本的执行,直到用户响应确认对话框。

另一方面,JQuery的一个使用元素来模拟对话框,并且不会冻结后续脚本的执行。因此,无论用户是否回答,都会调用下一条指令......这就是为什么弹出第二条确认的原因。

因此,如果您希望将指令依赖于用户对JQuery确认框的回答,则必须将此说明置于yesno回调中:

doConfirm('Do you want other dates you would like to create  Absence?',
    function yes() {

        var i = confirm("You have selected " +   document.getElementById('hdnAbsenceDates').value + " absence days, Do you want to Continue?");

    },
    function no() {
    }
);