Событие клика на динамическом элементе БЕЗ jQuery

Я хотел бы добавить событие, такое как onclick или mouseover, к динамически созданному элементу (подобно функции.live в jQuery)... как мне сделать это, используя чистый javascript без каркаса, такого как jQuery? Вот простая jsFiddle http://jsfiddle.net/3tBpv/1/

Я хотел бы быть в состоянии сделать это из недавно созданного класса divs вместо id.

Любая помощь будет принята с благодарностью

2 ответа

Создайте один обработчик для объекта документа. Проверьте класс целевого элемента и имя узла (тег). Если они совпадают, выполните все, что нужно сделать, в противном случае игнорируйте щелчок.

document.onclick = function(event) {
    var el = event.target;
    if (el.className == "new" && el.nodeName == "DIV") {
        alert("div.new clicked");
    }
};

Вот скрипка

Ответ @Anurag является правильным, но не полным, и в большинстве случаев приведет к множеству ошибок интеграции.

Вот правильная версия:

document.addEventListener("click", function(event)
{
    // retrieve an event if it was called manually
    event = event || window.event;

    // retrieve the related element
    var el = event.target || event.srcElement;

    // for all A tags do the following
    if (el instanceof HTMLAnchorElement )
    {
        //required to make the "return false" to affect
        event.preventDefault();

        window.location.href = "/click.php?href="+encodeURIComponent(el.href);

        //prevent user's click action
        return false;
    }
}, true);

Эта базовая функция отслеживания кликов влияет на все ссылки на странице, чтобы отслеживать / записывать все клики по ссылкам.

Другие вопросы по тегам