Когда вы связываете обработчик щелчка с объектом document
, вы не можете ожидать, что он будет вызываться несколько раз. Он будет вызван только один раз (для объекта document
).
Кстати, событие делает пузырь вверх по дереву DOM. Если этого не произойдет, он не достигнет объекта document
, и вы не увидите ни одного окна предупреждения.
Итак, событие запускается в элементе LI, а затем всплывает до самого объекта document
, где вызывается обработчик нажатия.
Кстати, обычно вы делегируете не весь объект document
, а ближайшему общему предку. Например, если вы хотите обрабатывать щелчки на элементах LI, вы делегируете элементу UL:
var list = document.getElementsByClassName( 'list' )[0];
list.addEventListener( 'click', function ( e ) {
var item = e.target;
// handle item click
}, false );
Демонстрационная версия: http://jsfiddle.net/rCVfq/