0

イベントがどのように機能するか、および元のイベントが実行される前に 2 番目のイベントがトリガーされるのを待つ方法を理解しようとしています。

 $.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
 });

これは魅力のように機能します。customConfirm2 つのボタン (確認/キャンセル) を持つブートストラップ モーダルを作成し、data-confirm属性値を modal-body html として設定します。

解決方法がわからないeのは、モーダルとのユーザー インタラクションに基づいてイベントを処理する方法です。現在のところ、モーダル ダイアログが表示されるだけで、元のイベントは何もしていないようです。

4

1 に答える 1

0

data-confirmedユーザーが確認した場合にクリックした要素に属性を追加click()し、元の要素で2番目をトリガーすることで解決しました。

$.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
});
于 2013-10-29T08:18:51.080 に答える