原生js如何绑定a连接点击事件?

mingfish2 2012-10-10 11:03:07
原生js如何绑定a连接点击事件?
...全文
741 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lw5853103 2012-10-10
  • 打赏
  • 举报
回复
太多方式了 楼上的都写了两种了
还有根据浏览器绑定的 IE/DOM
IE: attachEvent/detachEvent
DOM : addEventlistener/removeEventListener

这种问题 GOOGLE下就有了 同学
toury 2012-10-10
  • 打赏
  • 举报
回复
<a href="#" onclick="alert(this.innerHTML)">aaaaaaaaaa</a>
泡泡鱼_ 2012-10-10
  • 打赏
  • 举报
回复
var links=document.getElementById("switch_sites").getElementsByTagName("a");
for(var i=0;i<links.length;i++){
links[i].onclick=function(){
alert(this.innerHTML)
}
}
  • 打赏
  • 举报
回复
错了,应该是
使用事件委托
var EventUtil = {

addHandler: function(element, type, handler) {
if (element.addEventListener) {
element.addEventListener(type, handler, false);
} else if (element.attachEvent) {
element.attachEvent("on", + type, handler);
} else {
element["on" + type] = handler;
}
},

getEvent: function(event) {
return event ? window.event;
},

getTarget: function(event) {
return event.target || event.srcElement;
},

preventDefault: function(event) {
if (event.preventDefault) {
event.preventDefault();
} else {
event.returnValue = false;
}
},

removeHandler: function(element, type, handler) {
if (element.removeEventListener) {
element.removeEventListener(type, handler, false);
} else if (element.detachEvent) {
element.detachEvent("on", + type, handler);
} else {
element["on" + type] = null;
}
}
};

var list = document.getElementById("switch_sites");

EventUtil.addHandler(list, "click", function(event){
event = EventUtil.getEvent(event);
var target = EventUtil.getTarget(event);
var uls = target.parentNode.parentNode;

switch(target){
case "uls.getElementsByTagName("li")[0].getElementsByTagName("a")[0]":
alert(target.nodeValue);
break;

case "uls.getElementsByTagName("li")[1].getElementsByTagName("a")[0]":
alert(target.nodeValue);
break;

case "uls.getElementsByTagName("li")[2].getElementsByTagName("a")[0]":
alert(target.nodeValue);
break;

}
});
  • 打赏
  • 举报
回复
使用事件委托
var EventUtil = {

addHandler: function(element, type, handler) {
if (element.addEventListener) {
element.addEventListener(type, handler, false);
} else if (element.attachEvent) {
element.attachEvent("on", + type, handler);
} else {
element["on" + type] = handler;
}
},

getEvent: function(event) {
return event ? window.event;
},

getTarget: function(event) {
return event.target || event.srcElement;
},

preventDefault: function(event) {
if (event.preventDefault) {
event.preventDefault();
} else {
event.returnValue = false;
}
},

removeHandler: function(element, type, handler) {
if (element.removeEventListener) {
element.removeEventListener(type, handler, false);
} else if (element.detachEvent) {
element.detachEvent("on", + type, handler);
} else {
element["on" + type] = null;
}
}
};

var list = document.getElementById("switch_sites");

EventUtil.addHandler(list, "click", function(event){
event = Event.Util.getEvent(event);
var target = EventUtil.getTarget(event);
var uls = target.parentNode.parentNode;

switch(target){
case "uls.getElementsByTagName("li")[0].getElementsByTagName("a")[0]":
alert(target.nodeValue);
break;

case "uls.getElementsByTagName("li")[1].getElementsByTagName("a")[0]":
alert(target.nodeValue);
break;

case "uls.getElementsByTagName("li")[2].getElementsByTagName("a")[0]":
alert(target.nodeValue);
break;

}
});

87,923

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧