0

要素を取得してモーダルボックスに入れるための小さなプラグインを作成しました。要素が選択されると、次のように本文に追加されます。

$('body').append(overlay, modal).show();

ただし、モーダル内の要素がクリックまたは選択されたときに、アクションを検出できないように見えることに気づきました。

.on()と.live()を試しましたが無駄になりました。

$(document).ready(function() {
    $('#myLink').click(function() {
        $('#myEl').myModal();
    });

    $('#myLink').on('click', function() {
        alert('clicked me!');
    });
});

私は何が欠けていますか?

4

1 に答える 1

1

試す:

$(document).ready(function() {
    $(document).on('click', '#myLink', function() {
        alert('clicked me!');
    });
});

document理想的には、DOM内で、ドキュメントの準備ができたときに存在するセレクターよりも要素に近いセレクターを使用する必要があります。jQueryドキュメントによると.on()

イベントハンドラーは、現在選択されている要素にのみバインドされます。これらは、コードが.on()を呼び出すときにページに存在している必要があります。要素が存在し、選択できることを確認するには、ページのHTMLマークアップにある要素のドキュメントレディハンドラー内でイベントバインディングを実行します。新しいHTMLがページに挿入されている場合は、要素を選択し、新しいHTMLがページに配置された後にイベントハンドラーをアタッチします。

于 2013-02-19T22:13:47.743 に答える