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

解决方案 »

  1.   

    var links=document.getElementById("switch_sites").getElementsByTagName("a");
        for(var i=0;i<links.length;i++){
            links[i].onclick=function(){
                alert(this.innerHTML)
            }
        }
      

  2.   

    <a href="#" onclick="alert(this.innerHTML)">aaaaaaaaaa</a>
      

  3.   

    太多方式了 楼上的都写了两种了
    还有根据浏览器绑定的 IE/DOM
    IE: attachEvent/detachEvent
    DOM : addEventlistener/removeEventListener这种问题 GOOGLE下就有了 同学
      

  4.   

    使用事件委托
    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; }
    });
      

  5.   

    错了,应该是
    使用事件委托
    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;}
    });