添加事件
IE: attachEvent
Other: addEventListener
var button = document.getElementById("buttonId");
if(button.addEventListener){
button.addEventListener("click",eventFunction,false);
}else if(button.attachEvent){
button.attachEvent("onclick",eventFunction);
}
删除事件
IE: detachEvent
Other: removeEventListener
事件冒泡机制
IE: 事件从它发生的地方被触发,然后向DOM结构的上层冒泡
Other: 事件先向下沉入到目标元素,再向上冒泡
addEventListener( , ,[true|false])
- true: 向下沉入时截获事件
- false: 向上冒泡时截获事件
停止事件冒泡:
IE: window.event.cancelBubble=false;
Other: e.stopPropagation();
实验的例子:
function bindEvent() {
var button = document.getElementById("buttonId");
if (button.addEventListener) {
alert("Other browser");
//button.addEventListener("click",showEvent,false);
//button.addEventListener("click",showEvent2,false);
button.addEventListener("click", showEvent, true);
button.addEventListener("click", showEvent2, true);
} else if (button.attachEvent) {
alert("IE browser");
button.attachEvent("onclick", showEvent);
button.attachEvent("onclick", showEvent2);
}
}
function removeEvent() {
var button = document.getElementById("buttonId");
if (button.removeEventListener) {
alert("Other browser");
//button.removeEventListener("click",showEvent,false);
button.removeEventListener("click", showEvent, true);
} else if (button.detachEvent) {
alert("IE browser");
button.detachEvent("onclick", showEvent);
}
}
function showEvent(e) {
if (window.event != undefined) {
window.event.cancelBubble = true;
} else if (e.stopPropagation) {
e.stopPropagation();
}
alert("Event here!");
}
function showEvent2() {
alert("Other event here!");
}
function divEvent() {
alert("Div Event");
}
<div onclick="divEvent()">
<input type="button" id="buttonId" value="showEvent"/>
</div>
键盘事件
window.onload=function(){
//绑定键盘事件
document.onkeydown=showkey;
}
function showkey(e){
var key;
if(window.event)
key= window.event.keyCode;
else
key= e.keyCode;
alert(String.fromCharCode(key));
}
鼠标事件
获取mouse的位置
IE: clientX,clientY
Other: pageX, pageY
document.onmouseover= showPosition;