3

chrome dev ツールを使用してノード上のリスナーを確認すると、問題が発生します。動的にロードされたコンテンツでリスナーを検出していないようです (ただし、残念ながら、これをフィドルで再現していません)。ただし、jQuery によって委任されたイベントは登録されません。

「イベントの知識」を「リフレッシュ」できる方法はありますか?

var div = document.getElementsByTagName("div")[0],
    p = document.getElementsByTagName("p")[0],
    vanillaListen = function () {
        console.log("clicked via just JS");
    };
//attach pure JS listener
//shows up in Event Listeners pane
p.addEventListener("click", vanillaListen);

//attach jquery listener
$("body").on("mouseover", "div", function () {
    console.log("div mouse'd over via jQuery"); //does not show up in Event Listeners pane
});

//attach listener from ajax loaded content
$(document).ready(function () {
    setTimeout(function () {

        $.ajax({
            type: "post",
            url: "/echo/html/",
            dataType: "html",
            data: {
                html: "<p onClick=\"alert('ajax attached inline event')\">dynamic &lt;p&gt;</p>",
                delay: 1
            },
            success: function (returnedData) {
                //inline onClick shows up in Event Listeners pane
                $("body").append(returnedData);
            }
        });
    }, 2000);
});

フィドル

4

1 に答える 1