Skip to content

Commit aae1d3a

Browse files
committed
docs(events): edit globaleventhandlers
1 parent 40d38dc commit aae1d3a

4 files changed

Lines changed: 64 additions & 150 deletions

File tree

docs/dom/mutationobserver.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,15 +56,15 @@ observer.observe(article, options);
5656

5757
观察器所能观察的 DOM 变动类型(即上面代码的`options`对象),有以下几种。
5858

59-
- **childList**:子节点的变动。
59+
- **childList**:子节点的变动(指新增,删除或者更改)
6060
- **attributes**:属性的变动。
6161
- **characterData**:节点内容或节点文本的变动。
62-
- **subtree**:所有后代节点的变动。
6362

64-
想要观察哪一种变动类型,就在`option`对象中指定它的值为`true`。需要注意的是,如果设置观察`subtree`的变动,必须同时指定`childList``attributes``characterData`中的一种或多种。
63+
想要观察哪一种变动类型,就在`option`对象中指定它的值为`true`。需要注意的是,必须同时指定`childList``attributes``characterData`中的一种或多种,若未均指定将报错
6564

6665
除了变动类型,`options`对象还可以设定以下属性:
6766

67+
- `subtree`:布尔值,表示是否将该观察器应用于该节点的所有后代节点。
6868
- `attributeOldValue`:布尔值,表示观察`attributes`变动时,是否需要记录变动前的属性值。
6969
- `characterDataOldValue`:布尔值,表示观察`characterData`变动时,是否需要记录变动前的值。
7070
- `attributeFilter`:数组,表示需要观察的特定属性(比如`['class','src']`)。

docs/elements/image.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ img.src // http://example.com/pic.jpg
8383

8484
`HTMLImageElement.isMap`属性对应`<img>`元素的 HTML 属性`ismap`,返回一个布尔值,表示图像是否为服务器端的图像映射的一部分。
8585

86-
`HTMLImageElement.useMap`属性对应<img>元素的 HTML 属性`usemap`,表示当前图像对应的`<map>`元素。
86+
`HTMLImageElement.useMap`属性对应`<img>`元素的 HTML 属性`usemap`,表示当前图像对应的`<map>`元素。
8787

8888
**(5)HTMLImageElement.srcset,HTMLImageElement.sizes**
8989

docs/events/globaleventhandlers.md

Lines changed: 59 additions & 145 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,20 @@
11
# GlobalEventHandlers 接口
22

3-
`GlobalEventHandlers`接口主要用于为各种事件指定回调函数
3+
指定事件的回调函数,推荐使用的方法是元素的`addEventListener`方法
44

5-
`HTMLElement``Document``Window`这三种接口继承了这个接口,也就是说,各种 HTML 元素、`document`对象、`window`对象上面都可以使用`GlobalEventHandlers`接口提供的属性。
5+
```javascript
6+
div.addEventListener('click', clickHandler, false);
7+
```
8+
9+
除了之外,还有一种方法可以直接指定事件的回调函数。
10+
11+
```javascript
12+
div.onclick = clickHandler;
13+
```
14+
15+
这个接口是由`GlobalEventHandlers`接口提供的。它的优点是使用比较方便,缺点是只能为每个事件指定一个回调函数,并且无法指定事件触发的阶段(捕获阶段还是冒泡阶段)。
16+
17+
`HTMLElement``Document``Window`都继承了这个接口,也就是说,各种 HTML 元素、`document`对象、`window`对象上面都可以使用`GlobalEventHandlers`接口提供的属性。下面就列出这个接口提供的主要的事件属性。
618

719
## GlobalEventHandlers.onabort
820

@@ -72,28 +84,6 @@ element.onblur = function () {
7284

7385
注意,如果不是可以接受用户输入的元素,要触发`onfocus`,该元素必须有`tabindex`属性。
7486

75-
## GlobalEventHandlers.onclick,GlobalEventHandlers.ondblclick
76-
77-
用户点击元素时,会触发该元素的`onclick`属性。
78-
79-
```javascript
80-
element.onclick = function (event) {
81-
console.log('moot!');
82-
};
83-
```
84-
85-
`onclick`属性的处理函数的参数是一个 MouseEvent 对象,会包含当前鼠标位置等信息。函数内部的`this`,指向当前元素。
86-
87-
该属性有两点需要注意。一是,它的触发时间在`mousedown``mouseup`事件的后面;二是,`keydown`事件最好与`click`事件部署同样的逻辑,以适应用户不使用鼠标或触摸屏、只使用键盘的情况。
88-
89-
用户双击元素时,会触发`dblclick`事件,导致执行`ondblclick()`
90-
91-
```javascript
92-
element.ondblclick = function () {
93-
console.log('双击事件发生');
94-
};
95-
```
96-
9787
## GlobalEventHandlers.onscroll
9888

9989
页面或元素滚动时,会触发`scroll`事件,导致执行`onscroll()`
@@ -110,143 +100,67 @@ document.oncontextmenu = function () {
110100

111101
上面代码中,`oncontextmenu`属性执行后返回`false`,右键菜单就不会出现。
112102

113-
元素的右键菜单显示时,会触发该元素的`onshow`事件。
114-
115-
## 鼠标相关属性
116-
117-
- GlobalEventHandlers.onmousedown
118-
- GlobalEventHandlers.onmouseenter
119-
- GlobalEventHandlers.onmouseleave
120-
- GlobalEventHandlers.onmousemove
121-
- GlobalEventHandlers.onmouseout
122-
- GlobalEventHandlers.onmouseover
123-
- GlobalEventHandlers.onmouseup
124-
- GlobalEventHandlers.onwheel
103+
元素的右键菜单显示时,会触发该元素的`onshow`监听函数。
125104

126-
## 键盘相关属性
105+
## 其他的事件属性
127106

128-
- GlobalEventHandlers.onkeydown
129-
- GlobalEventHandlers.onkeypress
130-
- GlobalEventHandlers.onkeyup
107+
鼠标的事件属性。
131108

132-
## 表单相关属性
109+
- onclick
110+
- ondblclick
111+
- onmousedown
112+
- onmouseenter
113+
- onmouseleave
114+
- onmousemove
115+
- onmouseout
116+
- onmouseover
117+
- onmouseup
118+
- onwheel
133119

134-
### GlobalEventHandlers.oninput,GlobalEventHandlers.onchange
120+
键盘的事件属性。
135121

136-
`<input>``<select>``<textarea>`元素的值发生任何一点变更时,都会同步触发`input`事件,导致执行`oninput()`。当用户的输入告一段落后,输入框失去焦点之后,才会触发`change`事件,导致执行`onchange()`,也就是说不是每一次输入,都会触发`change`事件。
122+
- onkeydown
123+
- onkeypress
124+
- onkeyup
137125

138-
另外,打开`contenteditable`属性的元素(变成可编辑模式)的内容发生变化时,也会触发`input`事件
126+
焦点的事件属性
139127

140-
`oninput``onchange`的参数就是事件对象,可以从`event.target.value`上拿到用户输入的值。
128+
- onblur
129+
- onfocus
141130

142-
### GlobalEventHandlers.oninvalid,GlobalEventHandlers.onreset
131+
表单的事件属性。
143132

144-
一个表单元素的值不符合规定条件时,就会触发`invalid`事件,导致`oninvalid()`执行。
133+
- oninput
134+
- onchange
135+
- onsubmit
136+
- onreset
137+
- oninvalid
138+
- onselect
145139

146-
用户重置表单时,会触发`reset`事件,导致执行`onreset()`
140+
触摸的事件属性
147141

148-
### GlobalEventHandlers.onselect
142+
- ontouchcancel
143+
- ontouchend
144+
- ontouchmove
145+
- ontouchstart
149146

150-
表单的`<input>`文本输入框和`<textarea>`里面的文本被选中,会触发`select`事件,导致执行`onselect()`
147+
拖动的事件属性分成两类:一类与被拖动元素相关,另一类与接收被拖动元素的容器元素相关
151148

152-
### GlobalEventHandlers.onsubmit
149+
被拖动元素的事件属性。
153150

154-
用户提交表单时,会触发表单元素的`submit`事件,导致执行`onsubmit()`
151+
- ondragstart:拖动开始
152+
- ondrag:拖动过程中,每隔几百毫秒触发一次
153+
- ondragend:拖动结束
155154

156-
## 拖动相关属性
155+
接收被拖动元素的容器元素的事件属性。
157156

158-
拖动相关属性分成两类:一类与被拖动元素相关,另一类接收被拖动元素的容器元素相关。
157+
- ondragenter:被拖动元素进入容器元素。
158+
- ondragleave:被拖动元素离开容器元素。
159+
- ondragover:被拖动元素在容器元素上方,每隔几百毫秒触发一次。
160+
- ondrop:松开鼠标后,被拖动元素放入容器元素。
159161

160-
被拖动元素的相关属性
162+
`<dialog>`对话框元素的事件属性
161163

162-
- GlobalEventHandlers.ondragstart:拖动开始
163-
- GlobalEventHandlers.ondrag:拖动过程中,每隔几百毫秒触发一次
164-
- GlobalEventHandlers.ondragend:拖动结束
164+
- oncancel
165+
- onclose
165166

166-
接收被拖动元素的容器元素的相关属性。
167-
168-
- GlobalEventHandlers.ondragenter:被拖动元素进入容器元素。
169-
- GlobalEventHandlers.ondragleave:被拖动元素离开容器元素。
170-
- GlobalEventHandlers.ondragover:被拖动元素在容器元素上方,每隔几百毫秒触发一次。
171-
- GlobalEventHandlers.ondrop:松开鼠标后,被拖动元素放入容器元素。
172-
173-
以上属性的函数参数都是事件对象。
174-
175-
```javascript
176-
element.ondragstart = function (ev) {
177-
console.log('dragStart');
178-
}
179-
180-
element.ondrag = function (ev) {
181-
console.log('Drag');
182-
}
183-
184-
element.ondragEnd = function (ev) {
185-
console.log('dragEnd');
186-
}
187-
```
188-
189-
## 触摸事件的相关属性
190-
191-
触摸事件的相关属性有四个。
192-
193-
- GlobalEventHandlers.ontouchcancel
194-
- GlobalEventHandlers.ontouchend
195-
- GlobalEventHandlers.ontouchmove
196-
- GlobalEventHandlers.ontouchstart
197-
198-
下面是一个例子。
199-
200-
```javascript
201-
/* HTML 代码如下
202-
<div id="target1"> 触摸这里 </div>
203-
*/
204-
205-
function startTouch(event) {
206-
// ...
207-
}
208-
209-
var el=document.getElementById('target1');
210-
el.ontouchstart = startTouch;
211-
```
212-
213-
## 特定元素的属性
214-
215-
### GlobalEventHandlers.oncancel,GlobalEventHandlers.onclose
216-
217-
用户点击`<dialog>`的取消按钮或按下`esc`键时,会触发`cancel`事件,导致执行`oncancel`属性。用户关闭`<dialog>`窗口,会触发`onclose`事件,导致执行`onclose`属性。
218-
219-
这两个属性在 DOM 中只对`<dialog>`元素有意义。
220-
221-
## 拖拉事件的属性
222-
223-
- ondrag:`drag`事件的监听函数
224-
- ondragend:`dragend`事件的监听函数
225-
- ondragenter:`dragenter`事件的监听函数
226-
- ondragexit:`dragexit`事件的监听函数
227-
- ondragleave:`dragleave`事件的监听函数
228-
- ondragover:`dragover`事件的监听函数
229-
- ondragstart:`dragstart`事件的监听函数
230-
- ondrop:`drop`事件的监听函数
231-
232-
下面是一个例子。
233-
234-
```html
235-
<div>
236-
<p
237-
id="source"
238-
ondrag="drag_handler(event);"
239-
ondragstart="dragstart_handler(event);"
240-
draggable="true"
241-
>
242-
拖动该元素
243-
</p>
244-
</div>
245-
<div
246-
id="target"
247-
ondrop="drop_handler(event);"
248-
ondragover="dragover_handler(event);"
249-
>
250-
目标区域
251-
</div>
252-
```

docs/stdlib/string.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ one + two + three // "33"
207207
'JavaScript'.substring(4) // "Script"
208208
```
209209

210-
如果第二个参数大于第一个参数`substring`方法会自动更换两个参数的位置。
210+
如果第一个参数大于第二个参数`substring`方法会自动更换两个参数的位置。
211211

212212
```javascript
213213
'JavaScript'.substring(10, 4) // "Script"

0 commit comments

Comments
 (0)