@@ -37,11 +37,11 @@ dom树加载完毕,即document加载完毕,dom和dom元素不一样
3737### 4. 它和window对象的load事件有什么区别?
3838
3939
40- 触发时机不同:ready是在DOM树加载完毕后执行操作,load是在页面加载完毕再执行,包括DOM树和各个资源。
40+ - 触发时机不同:ready是在DOM树加载完毕后执行操作,load是在页面加载完毕再执行,包括DOM树和各个资源。
4141
42- 来源不同:ready时jQuery的自定义事件,而window的load事件是W3C定义的标准事件
42+ - 来源不同:ready时jQuery的自定义事件,而window的load事件是W3C定义的标准事件
4343
44- 适合执行的操作不一样:
44+ - 适合执行的操作不一样:
4545
4646
4747衍生问题:load和onload的区别?
@@ -67,7 +67,9 @@ $(window).load()和body.onload()都是完全加载页面时触发。不推荐用
6767衍生问题:为什么onload()可以用body?
6868
6969一般来说,在window上面发生的任何事件都可以在body元素中通过相应的特性来指定,因为在HTML中无法访问window元素。
70+
7071这样是为了保证向后兼容的权宜之计,但所有浏览器都能很好地支持这种方式。
72+
7173结论:为了对应上window.onload,body标签才有onload。
7274
7375
@@ -95,8 +97,7 @@ DOM加载完毕是指加载完DOM树,而window加载完毕指的是页面加
9597
96982.判断匹配的元素(li)是否包含于被委托了事件监听的外层元素(ul),有则继续,无则退。
9799
98- 3.到达这里说明委托外层元素进行事件处理的子元素(li)的事件确实触发了,此时就可以执行子元素委托给外层元素的handler,
99- 并把相应的事件信息,封装到一个事件对象中,一同传给这个handler。
100+ 3.到达这里说明委托外层元素进行事件处理的子元素(li)的事件确实触发了,此时就可以执行子元素委托给外层元素的handler,并把相应的事件信息,封装到一个事件对象中,一同传给这个handler。
100101
101102
102103
@@ -119,12 +120,11 @@ DOM加载完毕是指加载完DOM树,而window加载完毕指的是页面加
119120### 9.尽量减少调用DOM元素的操作次数
120121
121122
122- 回流:当执行元素的增删改,字号调整时,会导致页面结构发生变化,此时浏览器会重新调整页面布局,这个过程被称为回流。
123+ - 回流:当执行元素的增删改,字号调整时,会导致页面结构发生变化,此时浏览器会重新调整页面布局,这个过程被称为回流。
123124
124- 重绘:当重新设置修改元素的样式时(页面的结构布局没发生变化),会重新设置元素的显示样式,这个过程称为重绘。
125+ - 重绘:当重新设置修改元素的样式时(页面的结构布局没发生变化),会重新设置元素的显示样式,这个过程称为重绘。
125126
126- 双方关系和开销:回流一定引起重绘,而重绘不会引起回流,其中回流开销最大。而一个DOM元素操作如果引起页面结构变化,
127- 就会引起页面回流,当操作频繁时,会引发整体性能的下降。
127+ - 双方关系和开销:回流一定引起重绘,而重绘不会引起回流,其中回流开销最大。而一个DOM元素操作如果引起页面结构变化,就会引起页面回流,当操作频繁时,会引发整体性能的下降。
128128
129129
130130
@@ -133,6 +133,7 @@ DOM加载完毕是指加载完DOM树,而window加载完毕指的是页面加
133133添加节点时,先拼接HTML字符串,再去用append,html()和prepend等方法插入;
134134
1351352.常见的由于DOM元素样式变化引发的会流的优化方案。
136+
136137通过修改class,统一调整样式。jQuery常用的有addClass(),removeClass()和toggleClass();
137138
138139
@@ -142,17 +143,16 @@ DOM加载完毕是指加载完DOM树,而window加载完毕指的是页面加
142143
1431441 . 在特定业务场景,自定义的数据属性,其命名难免会和元素的内置属性名称冲突;
144145
145- 2 . 驼峰命名法广泛采用于变量命名,但是html代码不区分大小写,如果在html代码中使用驼峰命名法给自定义属性命名,
146- 那么自定义属性中出现的大写字母,也终将被解析为小写字母。
146+ 2 . 驼峰命名法广泛采用于变量命名,但是html代码不区分大小写,如果在html代码中使用驼峰命名法给自定义属性命名,那么自定义属性中出现的大写字母,也终将被解析为小写字母。
147147
148148
149149为了解决这两个问题,jQuery提供了data机制:
150150
151- 在html代码中,规定自定义数据属性需添加data-前缀,以和元素的内置属性区分,进而避免命名冲突;
151+ - 在html代码中,规定自定义数据属性需添加data-前缀,以和元素的内置属性区分,进而避免命名冲突;
152152
153- 同时,规定自定义属性使用中横线命名法,以应对html代码不区分大小写的问题;
153+ - 同时,规定自定义属性使用中横线命名法,以应对html代码不区分大小写的问题;
154154
155- 在js代码中,使用data(key)来读取自定义数据属性值,其中自定义属性名key采用驼峰命名法。
155+ - 在js代码中,使用data(key)来读取自定义数据属性值,其中自定义属性名key采用驼峰命名法。
156156
157157
158158``` html
0 commit comments