0

こんにちは、問題があります。クリックすると、最初に非表示の div が表示されるクリック イベントがあります。開いたdivには入力フォームがあります

$(".coll-menu-footer input.menu-btn").click(function(e) {
    $("div.new-coll").show();})
});

同じバトン要素を使用して、表示するdivが開いている場合にのみ送信したい。

質問を理解しやすくするために、1 つの要素、同じイベント、起動ごとに異なるアクションを使用します。

最初のクリックで非表示の div を表示し、2 回目のクリックで入力データを送信します。この可能性のある仲間はどうですか。

4

3 に答える 3

0

いくつかの可能な方法:

  1. jQuery を使用.toggle()して、クリックごとに別のアクションを自動的に適用します。
  2. イベント ハンドラーで、ページの状態 (開いているか閉じているか) を調べ、それに基づいて実行するアクションを決定します。
  3. 最初のクリックの後、最初のイベント ハンドラーをアンインストールし、別のアクションを実行する別のイベント ハンドラーをインストールします。3 番目、4 番目などについても同様です。
  4. クリック数のカウンターを保持し、単一のイベント ハンドラーでカウンターを見て、実行するアクションを決定します。
于 2012-12-17T19:02:56.240 に答える
0

JQuery を使用して、div がまだ非表示になっているかどうかを判断できます。まだ非表示の場合は、表示します。非表示でない場合は、提出を実行してください。

$(".coll-menu-footer input.menu-btn").click(function(e) {
     if($("div.new-coll").is(":visible"))
     {
         //perform your submission code
     }
     else
     {
         $("div.new-coll").show();
     }
});
于 2012-12-17T19:05:52.093 に答える
0

ボタンの 2 つの状態を作成できます。1 つ目は非表示の div を表示し、2 つ目はフォームを送信します。

$(".coll-menu-footer").on('click', 'input.menu-btn:not(.clicked)', function(e) {
    $("div.new-coll").show();
    $(this).addClass('clicked');
});

$(".coll-menu-footer").on('click', 'input.menu-btn.clicked', function(e) {
    $(this).removeClass('clicked');
    // submit and other code here
});

デモ

于 2012-12-17T19:06:19.257 に答える