Разница между документами.addEventListener и окна.addEventListener?


при использовании PhoneGap, он имеет некоторый код JavaScript по умолчанию, который использует document.addEventListener, но у меня есть свой собственный код, который использует window.addEventListener:

function onBodyLoad(){
    document.addEventListener("deviceready", onDeviceReady, false);
    document.addEventListener("touchmove", preventBehavior, false);
    window.addEventListener('shake', shakeEventDidOccur, false);
}

в чем разница и что лучше использовать?

2 88

2 ответа:

The document и window разные объекты и у них есть несколько разных событий. Используя addEventListener() на них прослушиваются события, предназначенные для другого объекта. Вы должны использовать тот, который на самом деле имеет событие, которое вас интересует.

например, есть "resize" событие window объект, который не находится на

вы обнаружите, что в javascript, как правило, существует много различных способов сделать то же самое или найти ту же информацию. В вашем примере, вы ищете какой-то элемент, который гарантированно всегда существует. window и document оба подходят (с небольшими отличиями).

С mozilla dev network:

addEventListener () регистрирует один прослушиватель событий на одном цель. Цель мероприятия может быть один элемент в документ, сам документ, окно или XMLHttpRequest.

Так что пока вы можете рассчитывать на то, что ваша" цель " всегда будет там, единственная разница заключается в том, какие события вы слушаете, поэтому просто используйте свой любимый.