Cha*_*lie 117 javascript events dom event-listener
使用PhoneGap时,它有一些使用的默认JavaScript代码document.addEventListener
,但我有自己的代码使用window.addEventListener
:
function onBodyLoad(){
document.addEventListener("deviceready", onDeviceReady, false);
document.addEventListener("touchmove", preventBehavior, false);
window.addEventListener('shake', shakeEventDidOccur, false);
}
Run Code Online (Sandbox Code Playgroud)
有什么区别,哪个更好用?
jfr*_*d00 138
在document
和window
不同的对象和他们有一些不同的事件.addEventListener()
在它们上使用会侦听发往不同对象的事件.您应该使用实际上您感兴趣的事件.
例如,对象"resize"
上有一个window
不在对象上的事件document
.
例如,"DOMContentLoaded"
事件仅在document
对象上.
基本上,您需要知道哪个对象接收您感兴趣的事件并.addEventListener()
在该特定对象上使用.
这是一个有趣的图表,显示哪些类型的对象创建了哪些类型的事件:https://developer.mozilla.org/en-US/docs/DOM/DOM_event_reference
如果您正在侦听传播的事件(例如click事件),则可以在文档对象或窗口对象上侦听该事件.传播事件的唯一主要区别在于时间.事件将在document
对象之前命中对象,window
因为它首先出现在层次结构中,但这种差异通常是无关紧要的,因此您可以选择其中任何一个.我发现在处理传播事件时,最好选择最接近事件源的对象来满足您的需求.这会建议你选择document
了window
当任会工作.但是,我经常更接近来源并使用document.body
文件中的一些更接近的共同父母(如果可能的话).
绑定window
是指浏览器提供的内置对象。它代表包含document
. 调用其addEventListener
方法会注册第二个参数(回调函数),以便在第一个参数描述的事件发生时调用。
<p>Some paragraph.</p>
<script>
window.addEventListener("click", () => {
console.log("Test");
});
</script>
Run Code Online (Sandbox Code Playgroud)
选择窗口或文档添加EventListners之前应注意以下几点
window
或相同,document
但有些事件如、 以及与、
、 和resize
相关的其他事件都应该在窗口上设置。loading
unloading
opening/closing
您会发现,在javascript中,通常有许多不同的方法可以执行相同的操作或查找相同的信息。在您的示例中,您正在寻找某个保证始终存在的元素。window
和document
两个适合票据(只有少数的差异)。
addEventListener()在单个目标上注册一个事件侦听器。事件目标可以是文档中的单个元素,文档本身,窗口或XMLHttpRequest。
因此,只要您可以指望始终存在的“目标”,唯一的区别就是您要收听的事件是什么,因此只需使用自己喜欢的事件即可。
归档时间: |
|
查看次数: |
83513 次 |
最近记录: |