标签:默认 hand ascii lis 浏览器 不能 nts 通过 fir
HTML页面与JS之间的交互时通过事件来完成的。事件,就是文档与浏览器窗口发生的一些特定的交互瞬间。可以使用侦听器(处理程序)来预订事件,以便事件发生时执行相应的程序代码。
1) elem.onxxx = function(event){};
2) 事件侦听器:
1)elem.onxxx = function(event){};
2)elem.addEventListener(type,func,false);
3)elem.attchEvent(‘on‘+type,func);
改变this指向:
var div = getElementByTagName(‘div‘);
div.attchEvent(‘onclick‘,fucntion(){
handle.call(div);
})
fucntion handle(){
}
function addEvent(ele,type,handle){
if(ele.addEventListener){
ele.addEventListener(type,handle,false);
}else if(ele.attachEvent){
ele.attachEvent(‘on‘+type,function(){
handle.call(ele);
})
}
else{
ele[‘on‘+type] = handle;
}
}
1)ele.onxxx = null/false/‘‘;
2)ele.removeEventListener(type,func,false);
3)ele.detachEvent(‘on‘+type,func);
1)取消冒泡
function stopBubble(e){
if(e.stopPropagation){
event.stopPropagation();
}else{
event.cancelBubble = true;
}
}
2)阻止默认事件
1.return false;以对象属性方式注册的事件才生效。
//取消右键菜单事件
document.oncontextmenu = function(){
console.log(‘aa‘);
return false;
}
//取消a标签跳转事件
a.onclick = function(){
return false;
}
<a href="javascript:void(0)">www.baidu.com</a>
2.event.preventDefault();//IE9以下不兼容
document.oncontextmenu = function(e){
console.log(‘aa‘);
e.preventDefault();
}
3.event.returnValue = false;//兼容IE
document.oncontextmenu = function(e){
console.log(‘aa‘);
e.returnValue = false;
}
封装取消默认事件函数cancelDefault:
document.oncontextmenu = function(e){
console.log(‘aa‘);
cancelDefault(e);
}
function cancelDefault(e){
if(e.preventDefault){
e.preventDefault();
}else{
e.returnValue = false;
}
}
var e = event || window.event;
var target = e.target || e.srcElement;
//事件委托
var li = document.getElementsByTagName(‘li‘);
var ul = document.getElementsByTagName(‘ul‘)[0];
ul.onclick = function(event){
var e = event || window.event;
var t = e.target || e.srcElement;
console.log(t.innerText);
}
var first = 0;
var last = 0;
var key = false;
document.onmousedown = function(e){
first = new Date().getTime();
}
document.onmouseup = function(e){
last = new Date ().getTime();
if(last - first < 300) {
key =true;
}
}
document.onclick = function(){
if(key){
console.log("click");
key = false;
}
}
input,focus,blur,change
var input1 = document.getElementsByTagName(‘input‘)[0];
input1.oninput = function(){
console.log(input1.value);
}
document.onscroll = function (){
console.log(window.pageXOffset + " " +window.pageYOffset);
}
load: window.onload();//load事件会在页面的dom树都加载完之后才触发,效率极低,主体程序不能写在load事件的事件处理函数里面。
IE6没有fixed,fixed兼容练习.
标签:默认 hand ascii lis 浏览器 不能 nts 通过 fir
原文地址:https://www.cnblogs.com/chenyingjie1207/p/10029016.html