漫漫学习之路何其久远,只有抛弃浮躁,静下来看书方能有所收获.
写此文章仅为记录自身学习之路,文章内容不是固定的,每当我发现新的东西就会添加进去.文章也可能有错误,希望看到的兄弟能帮我指出,在此小弟谢谢了.
一.事件有哪些要注意的问题
1.问题一:每个事件只能注册一个函数
window.onload =function (){
var div =document.getElementByTagName('div')[0];
div.onclick = a;
div.onclick = b;
functiona (){alert('a');}
functionb (){alert('b');}
}
//b会覆盖a 单机页面执行b
(1)解决方案一:
window.onload =function (){
var div =document.getElementByTagName('div')[0];
div.οnclick=function ()
{
a();
b();}
functiona (){alert(this.className);}
function b (){alert(this.id);}
}
缺陷1:不能在运行时加入函数,必须同时放在一起
缺陷2:此时a,b方法中的this指向的是window对象,而不是div对象,不过可以通过a.call(this);函数解决
,这样this就指向div对象了
(2)解决方案二:
functionaddEvent(obj,sj,fn)
{
//obj是要添加事件的对象
//sj是添加的事件
//fn是方法
varsaved ;
if(typeofobj['on'+sj] == 'function')
saved = obj['on'+sj];//当添加函数时,检查是否是存在,存在则保存
obj['on'+sj]= function ()
{
if(saved)saved();
if(typeoffn === 'function')fn();
}
}