EventUtil

用于抹平 IE 旧版本(IE8 及以下) 与现代浏览器在事件绑定的差异。


	// 1. 绑定多个不同类型的事件
	var div1 = document.getElementById("div1");
	E.addEvent(div1, 'mouseover', function(event) {
	    this.style.backgroundColor = "#3498db";
	})
	E.addEvent(div1, 'mouseout', function(event) {
	    this.style.backgroundColor = "#1abc9c";
	})
	E.addEvent(div1, 'click', function(event) {
	    this.style.backgroundColor = "#9b59b6";
	})

	// 支持面向对象绑定的方式
	var div11 = document.getElementById("div1-1");
	E(div11).addEvent('mouseover', function(event){
		this.style.backgroundColor = "#3498db";
	})
	E(div11).addEvent('mouseout', function(event){
		this.style.backgroundColor = "#1abc9c";
	})
	E(div11).addEvent('click', function(event){
		this.style.backgroundColor = "#9b59b6";
	})


	// 2. 绑定多个相同的事件,要求顺序执行函数
	var div2 = document.getElementById("div2");

	var alertOne = function() { alert('第一个事件函数') }
	var alertTwo = function() { alert('第二个事件函数') }
	var alertThree = function() { alert('第三个事件函数') }

	E.addEvent(div2, 'click', alertOne)
	E.addEvent(div2, 'click', alertTwo)
	E.addEvent(div2, 'click', alertThree)

						
	var div3 = document.getElementById("div3");

	var remove = function() {
	    alert('第一个事件函数');
	    E.removeEvent(div3, "click", alertTwo)
	}

	E.addEvent(div3, 'click', remove)
	E.addEvent(div3, 'click', alertTwo)
	E.addEvent(div3, 'click', alertThree)
						
					
						
	// 4. 触发事件
	var div4 = document.getElementById("div4");

	E.addEvent(div4, 'click', remove)
	E.addEvent(div4, 'click', alertTwo)
	E.addEvent(div4, 'click', alertThree)

	var triggerBtn = document.getElementById("div4-trigger-btn");
	E.addEvent(triggerBtn, 'click', function() {
	    E.triggerEvent(div4, 'click')
	})
						
					
						
	// 5. 阻止冒泡
	var div5 = document.getElementById("div5");
	var div5Wrapper = document.getElementById("div5-wrapper");

	E.addEvent(div5Wrapper, 'click', function() {
	    alert("冒泡触发了外层的事件")
	})

	E.addEvent(div5, 'click', function(event) {
	    event.stopPropagation();
	    alert("阻止了冒泡")
	})
						
					
						
	// 6. 阻止默认
	var div6 = document.getElementById("div6");

	E.addEvent(div6, 'click', function(event) {
	    event.preventDefault();
	    alert("阻止了默认的跳转行为")
	})

	var triggerBtn = document.getElementById("div6-trigger-btn");
	E.addEvent(triggerBtn, 'click', function() {
	    E.triggerEvent(div6, 'click')
	})
						
					
						
	// 7. event.pageX 和 event.pageY
	var div7 = document.getElementById("div7");

	E.addEvent(div7, 'click', function(event) {
	    alert('event.pageX: ' + event.pageX + '\n' + "event.pageY: " + event.pageY)
	})
						
					
						
	// 8. event.button
	var div8 = document.getElementById("div8");

	E.addEvent(div8, 'click', function(event) {
	    alert('event.button: ' + event.button)
	})
						
					
						
	// 9. event.which 0 == left, 1 == middle 2 == right
	var div9 = document.getElementById("div9");

	E.addEvent(div9, 'keypress', function(event) {
	    document.getElementById("input-text").innerHTML = String.fromCharCode(event.which)
	})


						
					
						
	// 10. 在元素上绑定数据
	var div10 = document.getElementById("div10");
	var setBtn = document.getElementById("set-data");
	var getBtn = document.getElementById("get-data");
	var removeBtn = document.getElementById("remove-data");

	E.addEvent(setBtn, 'click', function(event) {
	    E.setData(div10, 'name', 'Kevin')
	})

	E.addEvent(getBtn, 'click', function(event) {
	    alert(E.getData(div10, 'name'))
	})

	E.addEvent(removeBtn, 'click', function(event) {
	    E.removeData(div10)
	})
						
					
div1-0
div1-1
div2
div3
div4
div5
div6
div7
div8

正在输入的字符为

div10