组件开发
对象的多种表现形式
提高对象的复用性
如何配置参数和默认参数
例子:拖拽
例子:弹窗
复杂组件开发之自定义事件
组件
对面向对象的深入应用(UI组件,功能组件)
将配置参数、方法、事件,三者进行分离
创建自定义事件
有利于多人协作开发代码
如何去挂载自定义事件与事件函数
自定义事件:让函数能够具备事件的某些特性(绑定事件互相不会覆盖)1
2
3
4
5
6
7
8
9
10
11window.addEventListener('show',function(){
alert(1);
},false);
window.addEventListener('show',function(){
alert(2);
},false);
window.addEventListener('show',function(){
alert(3);
},false);
show(); //主动触发自定义事件
1 | <div id="div1"></div> |
EventTarget.addEventListener()
JS综合应用
1 | <div id="div1"> |
子集影响父级的bug(在IE下使用onmouseover和onmouseout时)
解决方案:
1.js:onmouseenter onmouseleave(子集不会影响父级)(最早IE支持,可能会有兼容性问题,做兼容非常麻烦)
1
2
3function elContains(a, b){ //判断两个元素是否是嵌套关系
return a.contains ? a != b && a.contains(b) : !!(a.compareDocumentPosition(b) & 16);
}
2.css:加一个层