0

これがどのように呼ばれているのかわかりません:

function eliminarLinea(event)
{
    event.preventDefault();
    if ($(".linea").length==1)
        alert("No se pueden eliminar todas las líneas");
    else
        $(this).parents(".linea").remove();

    reordenarNumerosLineas();
}

$(".eliminaLinea").click(eliminarLinea);

ただし、一部の要素 .eliminaLinea は動的に作成され、 $(".eliminaLinea").click(eliminarLinea); 仕事をやめる。これを行う必要がありますが、「オン」または「バインド」を使用します。

$('.eliminarLinea').bind('click', eliminarLinea(event)); のようなもの または $(".eliminarLinea").bind("クリック", eliminarLinea);

しかし、それは機能していません。任意のヒント?

4

2 に答える 2

1

セレクターを使用.onして「イベント委任」を使用する:

$(document).on('click', '.eliminaLinea', eliminarLinea);

using は非効率的であることに注意してくださいdocument- 可能であれば、より近い (非動的な) 祖先を指定してください。

指定された要素は、実際にイベント ハンドラーがバインドされている要素です (したがって、既存の要素である必要があります) が、イベントがトリガーされると、真のイベント ターゲットからバブリングし、jQuery は指定されたセレクターと一致するかどうかをチェックします。 .

于 2013-07-24T10:34:51.807 に答える
1

イベントを委任する必要があります。このようなものが動作するはずです:

$(document).on('click', '. eliminaLinea', eliminarLinea);

あなたのマークアップがわからないので、イベントを にバインドしましたdocumentが、これは非常に非効率的であることに注意してください。最も近い (動的ではない) コンテナーを使用することをお勧めします。

于 2013-07-24T10:35:03.437 に答える