Показать сообщение отдельно
  #8 (permalink)  
Старый 30.03.2013, 14:12
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от FanAizu
за счет чего обработчики добавляются к динамически добавленным элементам на страницу?
Никак они не добавляются. Можешь в инспекторе проверить даже.
Я же объяснил: обработчик вешается на document. В event.target передается ссылка на элемент, на котором возникло событие.
<head>
<script>
function elementMatchesSelector(element, selector) {
    return (element.webkitMatchesSelector ||
        element.mozMatchesSelector ||
        element.oMatchesSelector ||
        element.msMatchesSelector).call(element, selector);
}
function live(selector, eventType, handler) {
    document.addEventListener(eventType, function(e) {
        if (elementMatchesSelector(e.target, selector)) {
            handler.call(e.target, e);
        }
    });
}
</script>
</head>
<body>
<script>    
    live('button', 'click', function() {
        alert('It works!!!');
    });
    
    var button = document.createElement('button');
    button.textContent = 'Кнопка';
    document.body.appendChild(button);
</script>
</body>
Ответить с цитированием