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;
来获取事件源。