/**
* 1.所有浏览器都支持事件冒泡。
* 2.IE5.5和之前的浏览器事件冒泡会跳过html元素,直接从body跳到document
* 3.IE9和其他浏览器,一直冒泡到window
* 4.老版本浏览器不支持事件捕获,
*/
/**
* 1.addEventListener();添加的事件只能用removeEventListener来删除
* 2.这就意味着,addEventListener添加的匿名函数无法删除;
*/
/**
* 1.IE中,
* 2.attachEvent,detachEvent
* 3.使用attachEvent方法添加的会在全局作用域下执行,this === window;
*/
/**
* 事件对象
* 1.在事件处理程序内部,对象this始终等于currentTarget的值,
* 而target(就是说点在了哪里的那个对象)是包含事件的实际目标
* 在IE中srcElement和DOM中的target属性相同
* event.type指的是触发的事件类型,IE也支持
* 2.事件对象只有在对象执行期间才存在,一旦执行完成就会被销毁
*/
/**
* 1.确定浏览器是否支持HTML事件
* 2.确定是否支持DOM2事件 isSupported = documnet.implementation.hasFeature(‘HTMLEvents’,’2.0’);
* 2.确定是否支持DOM2事件 isSupported = documnet.implementation.hasFeature(‘MouseEvents’,’2.0’);
* 2.确定是否支持DOM3事件 isSupported = documnet.implementation.hasFeature(‘MouseEvent’,’3.0’);
* 3.确定是否支持DOM3事件 isSupported = documnet.implementation.hasFeature(‘UIEvent’,’3.0’);
*
*/
/**
* 1.charCode:只发生在keypress事件,在IE8和opera浏览器中编码则保存在keyCode中
*/
/**
* 1.事件委托机制利用的就是冒泡,所有浏览器都支持冒泡
* 2.适合用冒泡机制的事件,click,mousedown,mouseup,keydown,keyup,keypress,
* 3.不建议用冒泡的mouseover,mouseout
* 4.举例
*/
/*eventUntil.addHandler(‘list’, ‘click’, function(event) {
var event = eventUntil.getEvent(event);
var target = eventUntil.getTarget(event);
switch (target.id) {
case 'dosomething':
document.title('.......');
break;
case 'dosomething':
document.title('.......');
break;
case 'dosomething':
document.title('.......');
break;
case 'dosomething':
document.title('.......');
break;
}
});*/
var handler = function() {
alert(1);
};
var handler2 = function() {
alert(2);
};
// 在IE8和以下浏览器弹出的是2,然后是1;
// document.attachEvent(‘onclick’, handler);
// document.attachEvent(‘onclick’, handler2);
/**
* 1.focus ,blur不会冒泡
* 2.focusin,focusout冒泡
* 3.clientX 客户端的
* 4.pageX 页面距离,包括滚动条滚动的
* 5.screenX而是相当于屏幕的位置
*/