0

divがクリックされたときに入力ボックスをdivに追加する簡単なjQueryスクリプトのセットアップがあります。唯一の問題は、入力ボックスをクリックしてテキストを追加すると、div をもう一度クリックしていると見なされ、入力ボックスを再度追加しようとして、テキストを追加できないことです。

$(".match").click(function() {
    var match_id = $(this).find(".match_id").text();
    $(this).find("#bet").html("<div><input type='text'></div>");
});

それを修正する方法はありますか?

4

1 に答える 1

3

問題は、入力が div にあることです。したがって、クリック イベントが div に伝播するのを停止する必要があります。

これを追加してみてください:

$('.match input').click(function(e) {
    e.stopPropagation();
    e.cancelBubble = true;
});

または、div に 1 つの入力のみを追加したい場合は、イベント リスナーを次のように変更できます。

$('.match').one('click', function() {
    ...
});

one()はイベント リスナーを実行し、すぐにその要素から削除するため、一致した要素ごとに最大 1 回だけ実行されます。

于 2013-05-05T02:42:49.537 に答える