jQuery-「確認」と「塩剤」の組み合わせ
-
28-09-2019 - |
質問
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クラスにコードを添付するだけで、おそらくこれを整理できると思います。ドキュメントでそれを高くしてください。
所属していません StackOverflow