1

ajax呼び出しからhtml応答を受け取り、それをdivに追加すると、受け取ったhtmlからのdivが外部javascriptファイルから別の関数を呼び出さないという点で、jQueryに問題があります。

私の index.php ページでは、外部の JavaScript ファイルを参照しています。

<script src="functions/functions.js" type="text/javascript"></script>

上記のスクリプトには、次のものが含まれています。

jQuery(document).ready(function()
{
    $(".active").on('click', function()
    {
        jQuery.get('../ajax/file.php', function(data) {
        jQuery('#container').prepend(data);
        });
    })

    jQuery("#mydiv").on('click', function(event)
    {
        alert('clicked');
    });
});

クラス 'active' の div をクリックすると、file.php が呼び出されます。つまり、id が 'mydiv' の div が出力されるだけです。

<div id="mydiv"></div>

「mydiv」divをクリックすると、functions.jsファイルから関数が呼び出されません。上記の div を ajax 呼び出しの外に直接移動し、関数を正常に実行する index.php ファイルに直接移動しましたが、言うように、それが ajax 呼び出しを介して生成および追加された場合、動作したくありません。

4

1 に答える 1

6

#mydiv フィルタを使用してドキュメントのクリック イベントをバインドし、id を持つ要素を含む html に mydiv が追加されたイベントが動的にアタッチされるようにします。

jQuery(document).on('click', "#mydiv", function(event)
{
    alert('clicked');
});

または、応答が「#container」に追加されている場合は、イベントを「#container」にバインドできます。

jQuery('#container').on('click', "#mydiv", function(event)
{
    alert('clicked');
});
于 2012-11-27T16:11:44.060 に答える