js学习20150326(三)
1、keyCode shiftKey altKey ctrlKey
keyCode:
左37上38右39下40回车13删除8
obj.cloneNode(true/false);
obj.removeAttribute(属性名);
2、
this错误用法:window
1)定时器里面绝对不能用this
2)函数报了一层
3)行间事件,这个得传一个this
function show2() {
alert(this);
}
<input type="button" value="按钮3" onclick="show2();" />
4)attachEvent 面向对象解决
3、obj.addEventListener(事件名、函数, false);
obj.removeEventListener(事件名,函数,false); 匿名函数不能解除绑定
false:冒泡
true:事件 捕获(事件下沉) 父元素的事件会传播到子元素上
事件流:冒泡+事件捕获
低级浏览器:没有事件捕获 setCapture()
obj.attachEvent(on+事件名, 函数)
obj.attachEvent(on+事件名, 函数)
4、默认事件:
阻止默认事件:return false
在obj.addEventListener中 return false无效
需要ev.preventDefault();
obj.attachEvent return false可以起作用
函数回调:
只负责定义,什么时候执行 不知道
5、
//配对问题
document.onclick = show;
document.removeEventListener("click",show,false);
这样是解除不了事件绑定的
6、function show(){
alert("show");
}
var show = function(a,b){
alert(a + " : " + b);
};
show(1,2);
7、this的错误用法
<script type="text/javascript">
function show2(){
alert(this);
}
window.onload = function(){
function show(){
alert(this);
}
var aBtn = document.getElementsByTagName("input");
aBtn[0].onclick = function(){
show();
};
aBtn[1].onclick = show;
aBtn[2].onclick = function(){
setTimeout(show,100);
};
aBtn[4].attachEvent("onclick",show);
};
</script>
<input type="button" value="按钮0" />
<input type="button" value="按钮1" />
<input type="button" value="按钮2" />
<input type="button" value="按钮3" onclick="show2();" />
<input type="button" value="按钮4" />
8、2014-11-02 鼠标滚轮、统计文字
9、事件委托(事件代理),原理:冒泡
oEvent.srcElement ie chrome
oEvent.target chrome firefox
-------------------------------------------------------------
onmouseover 冒泡 判断从哪里来 oEvent.fromElement ie chrome
oEvent.relatedTarget 高级浏览器
onmouseout 层级关系 判断去哪里
oEvent.toElement ie chrome
oEvent.relatedTarget 高级浏览器
处理方案:
contains(oFrom/oTo);
2014-11-02事件委托,鼠标移入、移出BUG
9、
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。