【问题标题】:Custom Alert in Jquery does not wait and returns the click eventJquery中的自定义警报不等待并返回点击事件
【发布时间】:2017-01-03 05:27:41
【问题描述】:

过去几个月我一直在研究 jquery,并且喜欢在上面开发新东西。

最近,我使用我制作的模式弹出窗口(使用语义 ui,不使用 jquery ui)卡在自定义警报上......

我想执行一个点击事件(效果很好)..但在此之前我想调用这个自定义警报

我制作的自定义警报是

function confirmAlert(msg,OnSuccess){
  $('<div style="width:30%;height:15%;margin-left:-15em;" align="center" id="divretwhlsucc" class="ui tiny modal"> <div class="content"> <i class="checkmark big green box icon"></i>'+msg+'</div> <div class="actions"> <div class="ui black deny button">No</div><div class="ui positive right icon button">OK</div></div></div/>')
  .modal({
    closable  : false,
    onDeny    : function(){
    },
    onApprove : function() {
      return true;
    }
  })
  .modal('show');
}

当我尝试完善点击事件时弹出这个模态(写在下面)

$("#btnwhlsuppdel").click(function(){
      debugger;
      confirmAlert("Are you sure you want to delete?",function(){
          debugger;
          var a = [];
          var info = [];
          var cboxes = $('input[name="suppcheck[]"]:checked');
          var len = cboxes.length;
          for (var i=0; i<len; i++) {
            a[i] = cboxes[i].value;
            $("#hiddwhlsuppgrp").val(a);
          }
        });
      });

现在,即使我触发了事件,它也不会等待 customAlert 上的 onApprove 函数,而是直接执行。

我希望 customAlert 的行为类似于,如果我批准要执行的操作,则应触发 click 事件,否则应返回 false。

非常感谢对此的任何答案,因为我将在 Jquery 中了解更多信息!

谢谢!

【问题讨论】:

  • 也许你想要的在这里实现了..
  • 解决方案:您必须制作两个对话框,一个用于批准操作,第二个将在您批准后显示。
  • 我已经做到了....你能简单告诉我吗?

标签: javascript jquery


【解决方案1】:

你可以试试下面的。在此代码中,您需要将成功函数分配给 onApprove 回调。

function confirmAlert(msg,OnSuccess){
  $('<div style="width:30%;height:15%;margin-left:-15em;" align="center" id="divretwhlsucc" class="ui tiny modal"> <div class="content"> <i class="checkmark big green box icon"></i>'+msg+'</div> <div class="actions"> <div class="ui black deny button">No</div><div class="ui positive right icon button">OK</div></div></div>')
  .modal({
    closable  : false,
    onDeny    : function(){
    },
    onApprove : OnSuccess
  })
  .modal('show');
}

$("#btnwhlsuppdel").click(function(){      
      confirmAlert("Are you sure you want to delete?",function(){         
          var a = [];
          var info = [];
          var cboxes = $('input[name="suppcheck[]"]:checked');
          var len = cboxes.length;
          for (var i=0; i<len; i++) {
            a[i] = cboxes[i].value;
            $("#hiddwhlsuppgrp").val(a);
          }
        });
      });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-14
    • 2017-12-19
    • 1970-01-01
    • 2019-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多