2015-09-11 3 views
0

В основном ив получил страницу, код:Javascript DOM OnClick событие запуска для одного элемента

<body> 
    <div onclick="alert('You clicked ' + this.tagName)"> 
     <h1 onclick="alert('You Clicked ' + this.tagName)">Click Me</h1> 
    </div> 
</body> 

Это не мой точный сценарий, но я перестроил его для демонстрационных целей, когда я нажимаю на H1 он предупреждает, как он должен, но когда я закрываю окно предупредить DIV придумывает, я попробовал другой путь вокруг него, где я имел

document.addEventListener('click' , function(e){ 
    var target = e.target || e.srcElement; 
    alert('You Clicked ' + target.tagName); 
}); 

Это не работает на все элементы страницы для некоторых элементов на странице по причина этого - странная причина, я что-то не хватает?

+0

Использовать 'return false' в обработчике событий в конце – Tushar

+0

Я также использую это извините, я забыл положить, что он больше не останавливается –

+2

Я сделал скрипку для вас, проверьте это и дайте мне знать, это то, что вы хотите http://jsfiddle.net/9f8mfpvq/1/ –

ответ

0

Это происходит потому, что после события триггеров на самых глубоких из возможных элементов, он затем запускает на родителях в порядке вложенности

Вам нужно остановить распространение события в вашем случае

<body> 
     <div onclick="alert('You clicked ' + this.tagName)"> 
      <h1 onclick="alert('You Clicked ' + this.tagName);event.stopPropagation();">Click Me</h1> 
      xcxc 
     </div> 
    </body> 

здесь скрипка: http://jsfiddle.net/9f8mfpvq/1/

+0

Спасибо, Ive отметил это как ответ, я не могу поверить, что не понял, что ошибки nooby –

Смежные вопросы