質問

jQuery UIモーダルダイアログを使用してリンクをクリックすることを「確認」するだけのコードがあります。 [OK]をクリックすると、元のリンクに送信します。正常に動作するので、あまり詳細に読んではいけません=)

    $('.confirm').live('click', function(e) {
  e.preventDefault();
  var theHref = $(this).attr('href');
  var confirmText = 'Are you sure?';
  if ($(this).attr('confirm')) {
   confirmText = $(this).attr('confirm');
  }
  confirmDialog.html(confirmText);
  confirmDialog.dialog({
   buttons: {
    'OK': function() {
     window.location = theHref;
     $(this).dialog('close');
    },
    Cancel: function() {
     $(this).dialog('close');
     return false;
    }
   }
  });
  confirmDialog.dialog('open');
  return false;
 });

次に、他の任意の機能がたくさんあります。そう、これ:

    $('a.reset').live('click', function(e) {
  e.preventDefault();
  $(this).parents('form')[0].reset();
 });

これは、フォームをリセットする単なるリンクです(入力タイプ=リセットなど)。この機能も正常に機能します。これは単なる任意の例です。クラスを介して添付するJS機能のさまざまなスニペットがたくさんあります。

私が遭遇している問題は、これら2つを積み重ねることです。この例では、いくつかのリセットリンクが必要な場合があります。そのようです:

<a href="" class="reset confirm">Reset on confirmation</a>
<a href="" class="reset">Reset without confirmation</a>

もちろん、問題は、最初の例が確認を気にしないことです - それは先に進んでリセットするだけです。これらのコードのビットを個別にモジュール化し続けることができる方法はありますか(HTMLの例のように)同時に、一方を他方の出力に依存させますか?

私が達成しようとしていることは明らかだと思います。

どんな支援にも前もってありがとう。ここに初めて投稿するのでいいです=)

役に立ちましたか?

解決

これが機能するかどうかはわかりませんが、.liveハンドラーを逆順序で作成してみてください。最後に添付されているのは、最初に添付されていることからトリガーされる可能性があると思います。

他のヒント

あなたが達成したいと思っていたことから、非常に簡単なアプローチの1つは、デフォルトの動作を防ぐ前に、要素に確認クラスが添付されているかどうかを確認することです。

リセットクラスの前にConfirnクラスにコードを添付するだけで、おそらくこれを整理できると思います。ドキュメントでそれを高くしてください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top