js里事件绑定this是undefined
详细请参照这个博文http://www.cnblogs.com/lgjspace/archive/2011/08/16/2139621.html
下面是我的笔记。
首先绑定事件的方法有3种
比如
<button type="button" onclick="changeColor()">点击</button>在标签里加上onclick属性绑定。document.getElementById('all').onclick=function(){}在js获取dom对象然后增加.onclick属性来绑定。document.getElementById('all').addEventListener("click", function(obj) {}增加监听事件来绑定事件。
事件触发传入事件源
<button type="button" onclick="changeColor(this)">点击</button>
function change(obj){
}就是标签里传this然后绑定的行数传参obj,就把button传进来了var oUlItem = document.getElementById('ul-item'); oUlItem.addEventListener('click',show,false);//添加监听事件 function show(ev){ var ev = ev || window.event; var src = ev.target||ev.srcElement;//兼容IE下和FF下以及其他浏览器 if(src && src.className.toLowerCase() === 'item'){//tolowerCase,将字符串全部转化为小写字母 alert(src.innerHTML); } }加监听器或者js里.onclick里传参
重点是 var ev = ev || window.event;
var src = ev.target||ev.srcElement;
来获取事件源。
本文探讨了JavaScript中事件绑定的三种方式:直接在HTML标签中使用onclick属性、通过JavaScript获取DOM元素并设置onclick属性、使用addEventListener方法。重点介绍了如何在事件处理函数中正确处理this指向,以及如何通过参数传递事件源。
783

被折叠的 条评论
为什么被折叠?



