0

テーブルの下部にあるdivボックスに現在のリストからフォームを追加しています。誰かが追加ボタンをクリックしたときにdivボックスを追加しています。

しかし、[追加]ボタンを複数回クリックすると、多くのdivボックスが追加されます。

ボタンを何度クリックしても、1つのインスタンスだけがdivボックスに追加される方法はありますか?

これは私のコードです

$var = $(this).parent().parent();
$var.append($('.jq_div')[0].outerHTML);
4

2 に答える 2

4

を使用してリスナーをアタッチします.one()

$("button").one('click', function(){
  // Your code
});

続きを読む:http ://api.jquery.com/one

これは、jQuery1.7以降を使用していることを前提としています。

于 2012-10-09T00:32:12.640 に答える
0

簡単な解決策の1つは、ボタンがクリックされると切り替えることができるブールフラグを設定することです。さらに、実際には、この正確な機能を提供するjQuery関数があります。

それは呼ばれますone()-

要素のイベントにハンドラーをアタッチします。ハンドラーは、要素ごとに最大1回実行されます。

したがって、コードは次のようになります-

$("#someTrigger").one('click', function(){
  $var = $(this).parent().parent();
  $var.append($('.jq_div')[0].outerHTML);
});

ブール法も非常に簡単です-

var wasClicked = false;

$("#someTrigger").on('click', function(){
  if (wasClicked == false){
    // append your form
    wasClicked = true;
  }
});

参照 -

于 2012-10-09T00:33:04.043 に答える