在触发事件之前等待用户确认

时间:2013-10-28 14:50:51

标签: javascript twitter-bootstrap bootstrap-modal

我正在试图找出事件如何工作以及如何在原始事件执行之前等待第二个事件触发。

 $.fn.customConfirm = function (message){
     // Create modal
     // then ...
     $(confirmModal).find("modal-footer a").click(function(e2){
          e2.preventDefault();
          return ($(this).hasClass("dialogConfirm")); // Returns true if option has class dialogConfirm
     });
 };

 $("a[data-confirm]", click(function(e){
      if (!$.customConfirm($(this).attr("data-confirm")))
          return false; // Only if customConfirm returns false
      // Continue
 });

这就像一个魅力。 customConfirm使用2个按钮创建一个bootstrap模式(确认/取消),并将data-confirm属性值设置为模态体html。

我不知道如何解决的是如何根据用户与模态的交互来处理事件e。截至目前,它只显示模态对话框,原始事件似乎什么都不做。

1 个答案:

答案 0 :(得分:0)

如果用户确认然后在原始元素上触发第二个data-confirmed,我会通过向所点击的元素添加属性click()来解决此问题。

$.fn.customConfirm = function (message){
      var handle = $(this);
      // Create modal
      // then ...
      $(confirmModal).find("modal-footer a").click(function(e2){
           e2.preventDefault();
           $(handle).attr("data-confirmed", ($(this).hasClass("dialogConfirm")))[0].click();
           return false;
      });
 };

$("a[data-confirm]").click(function(e){
     if ($(this).attr("data-confirmed") !== "true")
     {
           e.preventDefault();
           $(this).customConfirm();
           return false;
     }
     $(this).removeAttr("data-confirmed");

     // Continue
});