0

私はいくつかの特別な pb を持っています: 私はクラス 'myclass' のいくつかのリストと div を ajax 要求によってオンザフライで作成し、それらをクリックすると、これを呼び出して入力領域にいくつかの URL を追加し、iframe にいくつかのソースを追加します。ポップアップで表示

$(document).on("click", "li .myclass", function () {
    var uri = $(this).closest('li').attr("id");
    var embed = 'https://www.youtube.com/embed/';
    $('#myinput').val(val + uri);
    $('#wrapper iframe').attr('src', embed + uri);
});

次に、ポップアップのボタンをクリックすると、#mybuttonのクリックがトリガーされ、テキストゾーンが作成されます

$(document).on("click", ".popup button", function () {
    event.preventDefault();
    $('#mybutton').trigger('click');
    $('#myinput').val('');
});

私の問題は、「li .myclass」を初めてクリックしたときに、1 つのテキストゾーンがきれいに作成されることです。しかし、2 回目にクリックすると 3 つのテキスト ゾーンが作成され、3 回目にクリックすると 6 つのテキスト ゾーンが作成されます。私は本当にこの違反を理解していません。誰か助けてもらえますか?

4

2 に答える 2

3

これを置き換えてみてください:

$(document).on("click", "li .myclass", function () {

これとともに:

$("li .myclass").on("click", function () {

「セレクター」パラメーターを使用して jQuery onメソッドを使用する方法は少し危険です。イベント バブリングを理解する必要があり、複数のイベントがトリガーされる原因となる可能性があります。

于 2013-02-12T17:23:23.297 に答える
1

Clicks トリガー イベントを何度も回避するには、stopPropagation() を実行する必要があります。

$(this).find('#cameraImageView').on('click', function(evt) {
evt.stopPropagation();
console.log("Camera click event.");
});
于 2015-01-20T05:17:17.713 に答える