有人能指出我对html Event
对象的文档吗?
我知道全局Event
对象存在的唯一原因是因为它在a Stackoverflow answer中提到过:
onclick="SomeEvent(this, event)"
function SomeEvent( el, event ) {
var target = event.srcElement || event.target;
if( el === target ) {
// run your code
}
}
它似乎具有以下属性:
srcElement
target
在Google上搜索我在HTML DOM Event object找到W3学校的页面,其中列出了以下属性:
bubbles
:返回事件是否为冒泡事件cancelable
:返回事件是否可以阻止其默认操作currentTarget
:返回其事件侦听器触发事件的元素eventPhase
:返回当前正在评估事件流的哪个阶段target
返回触发事件的元素timeStamp
返回创建事件的时间(相对于纪元的毫秒数) - type
返回事件的名称和方法:
initEvent()
:指定事件类型,事件是否可以冒泡,是否可以阻止事件的默认操作preventDefault()
:如果事件可取消,则取消该事件,这意味着该事件通常不会发生任何默认操作stopPropagation()
:防止在事件流程中进一步传播事件缺少srcElement
,因此可以说它不是完整的文档。
然后是微软的page on the event
object。它没有任何文件;只提到对象。但确实提到了:
某些属性在某些事件中可能没有有意义的值。例如,
fromElement
和toElement
属性
W3Schools页面未提及fromElement
或toElement
属性;所以它还不完整。
MSDN页面引用了指向W3C的链接:
标准信息
Document Object Model (DOM) Level 2 HTML Specification,第1.6.5节
搜索该页面未提及fromElement
或toElement
。
那么有人能指出我对html Event
对象的文档吗?
答案 0 :(得分:1)
MDN网站提供了非常可靠的信息:https://developer.mozilla.org/en/DOM/event。你的event.toElement
属性是一个非标准的微软的东西,快速测试显示Firefox中的属性为undefined
:
<body onclick="alert(event.srcElement)">Click
要使用的正确属性是target
。另请注意,event
不是全局,它只是一个局部变量。建议您使用addEventListener
添加DOM事件,如MDN页面中所述。
quirksmode.org有很好的关于浏览器兼容性的表格。
W3schools ......好http://w3fools.com
由于您想了解有关IE特定srcElement
属性的更多信息,请参阅Microsofts文档。来自srcElement property:
获取最初分派事件的元素。与target比较。
说明
注意提供srcElement属性是为了向后兼容。请改用目标属性。
答案 1 :(得分:0)
Javascript本身只是一个概念。它融合了不同的方言,如Jscript&amp; Gecko Javascript。现在不同的浏览器对Javascript的处理方式不同,因此互联网上存在大量不同的文档。
现在谈论这些事件:
然后是兼容性:
事实上,无论您正在谈论哪些事件模型,您都会发现各个方面的所有四个主要浏览器之间存在差异。这就是为什么你没有找到事件对象的特定全局文档。