@whitesev/domutils 1.7.5 → 1.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  import { ElementAnimate } from "./ElementAnimate";
2
- import type { DOMUtils_Event, DOMUtils_EventType, DOMUtilsAddEventListenerResult, DOMUtilsElementEventType, DOMUtilsEventListenerOption, DOMUtilsEventListenerOptionsAttribute } from "./types/DOMUtilsEvent";
2
+ import type { DOMUtils_Event, DOMUtils_EventType, DOMUtilsAddEventListenerResult, DOMUtilsDoubleClickOption, DOMUtilsElementEventType, DOMUtilsEventListenerOption, DOMUtilsEventListenerOptionsAttribute } from "./types/DOMUtilsEvent";
3
3
  import type { DOMUtilsTargetElementType } from "./types/global";
4
4
  import type { WindowApiOption } from "./types/WindowApi";
5
5
  import { WindowApi } from "./WindowApi";
@@ -14,7 +14,7 @@ declare class ElementEvent extends ElementAnimate {
14
14
  * 绑定事件
15
15
  * @param element 需要绑定的元素|元素数组|window
16
16
  * @param eventType 需要监听的事件
17
- * @param callback 绑定事件触发的回调函数
17
+ * @param handler 绑定事件触发的回调函数
18
18
  * @param option
19
19
  * + capture 表示事件是否在捕获阶段触发。默认为false,即在冒泡阶段触发
20
20
  * + once 表示事件是否只触发一次。默认为false
@@ -28,12 +28,12 @@ declare class ElementEvent extends ElementAnimate {
28
28
  * console.log("事件触发",event)
29
29
  * })
30
30
  */
31
- on<T extends DOMUtils_EventType>(element: DOMUtilsElementEventType, eventType: T | T[], callback: (this: HTMLElement, event: DOMUtils_Event[T]) => void, option?: DOMUtilsEventListenerOption | boolean): DOMUtilsAddEventListenerResult;
31
+ on<T extends DOMUtils_EventType>(element: DOMUtilsElementEventType, eventType: T | T[], handler: (this: HTMLElement, event: DOMUtils_Event[T]) => void, option?: DOMUtilsEventListenerOption | boolean): DOMUtilsAddEventListenerResult;
32
32
  /**
33
33
  * 绑定事件
34
34
  * @param element 需要绑定的元素|元素数组|window
35
35
  * @param eventType 需要监听的事件
36
- * @param callback 绑定事件触发的回调函数
36
+ * @param handler 绑定事件触发的回调函数
37
37
  * @param option
38
38
  * + capture 表示事件是否在捕获阶段触发。默认为false,即在冒泡阶段触发
39
39
  * + once 表示事件是否只触发一次。默认为false
@@ -47,13 +47,13 @@ declare class ElementEvent extends ElementAnimate {
47
47
  * console.log("事件触发",event)
48
48
  * })
49
49
  */
50
- on<T extends Event>(element: DOMUtilsElementEventType, eventType: string | string[], callback: (this: HTMLElement, event: T) => void, option?: DOMUtilsEventListenerOption | boolean): DOMUtilsAddEventListenerResult;
50
+ on<T extends Event>(element: DOMUtilsElementEventType, eventType: string | string[], handler: (this: HTMLElement, event: T) => void, option?: DOMUtilsEventListenerOption | boolean): DOMUtilsAddEventListenerResult;
51
51
  /**
52
52
  * 绑定事件
53
53
  * @param element 需要绑定的元素|元素数组|window
54
54
  * @param eventType 需要监听的事件
55
55
  * @param selector 子元素选择器
56
- * @param callback 绑定事件触发的回调函数
56
+ * @param handler 绑定事件触发的回调函数
57
57
  * @param option
58
58
  * + capture 表示事件是否在捕获阶段触发。默认为false,即在冒泡阶段触发
59
59
  * + once 表示事件是否只触发一次。默认为false
@@ -72,13 +72,13 @@ declare class ElementEvent extends ElementAnimate {
72
72
  * console.log("事件触发", event, selectorTarget)
73
73
  * })
74
74
  */
75
- on<T extends DOMUtils_EventType>(element: DOMUtilsElementEventType, eventType: T | T[], selector: string | string[] | undefined | null, callback: (this: HTMLElement, event: DOMUtils_Event[T], selectorTarget: HTMLElement) => void, option?: DOMUtilsEventListenerOption | boolean): DOMUtilsAddEventListenerResult;
75
+ on<T extends DOMUtils_EventType>(element: DOMUtilsElementEventType, eventType: T | T[], selector: string | string[] | undefined | null, handler: (this: HTMLElement, event: DOMUtils_Event[T], selectorTarget: HTMLElement) => void, option?: DOMUtilsEventListenerOption | boolean): DOMUtilsAddEventListenerResult;
76
76
  /**
77
77
  * 绑定事件
78
78
  * @param element 需要绑定的元素|元素数组|window
79
79
  * @param eventType 需要监听的事件
80
80
  * @param selector 子元素选择器
81
- * @param callback 绑定事件触发的回调函数
81
+ * @param handler 绑定事件触发的回调函数
82
82
  * @param option
83
83
  * + capture 表示事件是否在捕获阶段触发。默认为false,即在冒泡阶段触发
84
84
  * + once 表示事件是否只触发一次。默认为false
@@ -97,7 +97,7 @@ declare class ElementEvent extends ElementAnimate {
97
97
  * console.log("事件触发", event, selectorTarget)
98
98
  * })
99
99
  */
100
- on<T extends Event>(element: DOMUtilsElementEventType, eventType: string | string[], selector: string | string[] | undefined | null, callback: (this: HTMLElement, event: T, selectorTarget: HTMLElement) => void, option?: DOMUtilsEventListenerOption | boolean): DOMUtilsAddEventListenerResult;
100
+ on<T extends Event>(element: DOMUtilsElementEventType, eventType: string | string[], selector: string | string[] | undefined | null, handler: (this: HTMLElement, event: T, selectorTarget: HTMLElement) => void, option?: DOMUtilsEventListenerOption | boolean): DOMUtilsAddEventListenerResult;
101
101
  /**
102
102
  * 取消绑定事件
103
103
  * @param element 需要取消绑定的元素|元素数组
@@ -172,53 +172,53 @@ declare class ElementEvent extends ElementAnimate {
172
172
  * 等待文档加载完成后执行指定的函数
173
173
  * @param callback 需要执行的函数
174
174
  * @example
175
- * DOMUtils.ready(function(){
175
+ * DOMUtils.onReady(function(){
176
176
  * console.log("文档加载完毕")
177
177
  * });
178
178
  * > "文档加载完毕"
179
179
  * @example
180
- * await DOMUtils.ready();
180
+ * await DOMUtils.onReady();
181
181
  * console.log("文档加载完毕");
182
182
  * > "文档加载完毕"
183
183
  */
184
- ready(): Promise<void>;
185
- ready(callback: (...args: any[]) => any): void;
184
+ onReady(): Promise<void>;
185
+ onReady(callback: (...args: any[]) => any): void;
186
186
  /**
187
187
  * 主动触发事件
188
188
  * @param element 需要触发的元素|元素数组|window
189
189
  * @param eventType 需要触发的事件
190
190
  * @param details 赋予触发的Event的额外属性,如果是Event类型,那么将自动代替默认new的Event对象
191
- * @param useDispatchToTriggerEvent 是否使用dispatchEvent来触发事件,默认true,如果为false,则直接调用callback,但是这种会让使用了selectorTarget的没有值
191
+ * @param useDispatchToEmit 是否使用dispatchEvent来触发事件,默认true,如果为false,则直接调用callback,但是这种会让使用了selectorTarget的没有值
192
192
  * @example
193
193
  * // 触发元素a.xx的click事件
194
- * DOMUtils.trigger(document.querySelector("a.xx"),"click")
195
- * DOMUtils.trigger("a.xx","click")
194
+ * DOMUtils.emit(document.querySelector("a.xx"),"click")
195
+ * DOMUtils.emit("a.xx","click")
196
196
  * // 触发元素a.xx的click、tap、hover事件
197
- * DOMUtils.trigger(document.querySelector("a.xx"),"click tap hover")
198
- * DOMUtils.trigger("a.xx",["click","tap","hover"])
197
+ * DOMUtils.emit(document.querySelector("a.xx"),"click tap hover")
198
+ * DOMUtils.emit("a.xx",["click","tap","hover"])
199
199
  */
200
- trigger(element: DOMUtilsTargetElementType | Element | DocumentFragment | any[] | typeof globalThis | Window | Document, eventType: string | string[], details?: object, useDispatchToTriggerEvent?: boolean): void;
200
+ emit(element: DOMUtilsTargetElementType | Element | DocumentFragment | any[] | typeof globalThis | Window | Document, eventType: string | string[], details?: object, useDispatchToEmit?: boolean): void;
201
201
  /**
202
202
  * 主动触发事件
203
203
  * @param element 需要触发的元素|元素数组|window
204
204
  * @param eventType 需要触发的事件
205
205
  * @param details 赋予触发的Event的额外属性,如果是Event类型,那么将自动代替默认new的Event对象
206
- * @param useDispatchToTriggerEvent 是否使用dispatchEvent来触发事件,默认true,如果为false,则直接调用callback,但是这种会让使用了selectorTarget的没有值
206
+ * @param useDispatchToEmit 是否使用dispatchEvent来触发事件,默认true,如果为false,则直接调用callback,但是这种会让使用了selectorTarget的没有值
207
207
  * @example
208
208
  * // 触发元素a.xx的click事件
209
- * DOMUtils.trigger(document.querySelector("a.xx"),"click")
210
- * DOMUtils.trigger("a.xx","click")
209
+ * DOMUtils.emit(document.querySelector("a.xx"),"click")
210
+ * DOMUtils.emit("a.xx","click")
211
211
  * // 触发元素a.xx的click、tap、hover事件
212
- * DOMUtils.trigger(document.querySelector("a.xx"),"click tap hover")
213
- * DOMUtils.trigger("a.xx",["click","tap","hover"])
212
+ * DOMUtils.emit(document.querySelector("a.xx"),"click tap hover")
213
+ * DOMUtils.emit("a.xx",["click","tap","hover"])
214
214
  */
215
- trigger(element: Element | string | NodeList | any[] | Window | Document, eventType: DOMUtils_EventType | DOMUtils_EventType[], details?: object, useDispatchToTriggerEvent?: boolean): void;
215
+ emit(element: Element | string | NodeList | any[] | Window | Document, eventType: DOMUtils_EventType | DOMUtils_EventType[], details?: object, useDispatchToEmit?: boolean): void;
216
216
  /**
217
- * 绑定或触发元素的click事件
217
+ * 监听或触发元素的click事件
218
218
  * @param element 目标元素
219
219
  * @param handler (可选)事件处理函数
220
220
  * @param details (可选)赋予触发的Event的额外属性
221
- * @param useDispatchToTriggerEvent (可选)是否使用dispatchEvent来触发事件,默认true
221
+ * @param useDispatchToEmit (可选)是否使用dispatchEvent来触发事件,默认true
222
222
  * @example
223
223
  * // 触发元素a.xx的click事件
224
224
  * DOMUtils.click(document.querySelector("a.xx"))
@@ -227,13 +227,13 @@ declare class ElementEvent extends ElementAnimate {
227
227
  * console.log("触发click事件成功")
228
228
  * })
229
229
  * */
230
- click(element: DOMUtilsTargetElementType | Element | DocumentFragment | typeof globalThis | Window, handler?: (this: HTMLElement, event: DOMUtils_Event["click"]) => void, details?: any, useDispatchToTriggerEvent?: boolean): void;
230
+ click(element: DOMUtilsTargetElementType | Element | DocumentFragment | typeof globalThis | Window, handler?: (this: HTMLElement, event: DOMUtils_Event["click"]) => void, details?: any, useDispatchToEmit?: boolean): void;
231
231
  /**
232
- * 绑定或触发元素的blur事件
232
+ * 监听或触发元素的blur事件
233
233
  * @param element 目标元素
234
234
  * @param handler (可选)事件处理函数
235
235
  * @param details (可选)赋予触发的Event的额外属性
236
- * @param useDispatchToTriggerEvent (可选)是否使用dispatchEvent来触发事件,默认true
236
+ * @param useDispatchToEmit (可选)是否使用dispatchEvent来触发事件,默认true
237
237
  * @example
238
238
  * // 触发元素a.xx的blur事件
239
239
  * DOMUtils.blur(document.querySelector("a.xx"))
@@ -242,13 +242,13 @@ declare class ElementEvent extends ElementAnimate {
242
242
  * console.log("触发blur事件成功")
243
243
  * })
244
244
  * */
245
- blur(element: DOMUtilsTargetElementType | Element | DocumentFragment | typeof globalThis | Window, handler?: (this: HTMLElement, event: DOMUtils_Event["blur"]) => void, details?: object, useDispatchToTriggerEvent?: boolean): void;
245
+ blur(element: DOMUtilsTargetElementType | Element | DocumentFragment | typeof globalThis | Window, handler?: (this: HTMLElement, event: DOMUtils_Event["blur"]) => void, details?: object, useDispatchToEmit?: boolean): void;
246
246
  /**
247
- * 绑定或触发元素的focus事件
247
+ * 监听或触发元素的focus事件
248
248
  * @param element 目标元素
249
249
  * @param handler (可选)事件处理函数
250
250
  * @param details (可选)赋予触发的Event的额外属性
251
- * @param useDispatchToTriggerEvent (可选)是否使用dispatchEvent来触发事件,默认true
251
+ * @param useDispatchToEmit (可选)是否使用dispatchEvent来触发事件,默认true
252
252
  * @example
253
253
  * // 触发元素a.xx的focus事件
254
254
  * DOMUtils.focus(document.querySelector("a.xx"))
@@ -257,7 +257,7 @@ declare class ElementEvent extends ElementAnimate {
257
257
  * console.log("触发focus事件成功")
258
258
  * })
259
259
  * */
260
- focus(element: DOMUtilsTargetElementType | Element | DocumentFragment | typeof globalThis | Window, handler?: (this: HTMLElement, event: DOMUtils_Event["focus"]) => void, details?: object, useDispatchToTriggerEvent?: boolean): void;
260
+ focus(element: DOMUtilsTargetElementType | Element | DocumentFragment | typeof globalThis | Window, handler?: (this: HTMLElement, event: DOMUtils_Event["focus"]) => void, details?: object, useDispatchToEmit?: boolean): void;
261
261
  /**
262
262
  * 当鼠标移入或移出元素时触发事件
263
263
  * @param element 当前元素
@@ -265,30 +265,30 @@ declare class ElementEvent extends ElementAnimate {
265
265
  * @param option 配置
266
266
  * @example
267
267
  * // 监听a.xx元素的移入或移出
268
- * DOMUtils.hover(document.querySelector("a.xx"),()=>{
268
+ * DOMUtils.onHover(document.querySelector("a.xx"),()=>{
269
269
  * console.log("移入/移除");
270
270
  * })
271
- * DOMUtils.hover("a.xx",()=>{
271
+ * DOMUtils.onHover("a.xx",()=>{
272
272
  * console.log("移入/移除");
273
273
  * })
274
274
  */
275
- hover(element: DOMUtilsTargetElementType | Element | DocumentFragment | Node, handler: (this: HTMLElement, event: DOMUtils_Event["hover"]) => void, option?: boolean | DOMUtilsEventListenerOption): void;
275
+ onHover(element: DOMUtilsTargetElementType | Element | DocumentFragment | Node, handler: (this: HTMLElement, event: DOMUtils_Event["hover"]) => void, option?: boolean | DOMUtilsEventListenerOption): void;
276
276
  /**
277
- * 当动画结束时触发事件
277
+ * 监听动画结束
278
278
  * @param element 监听的元素
279
279
  * @param handler 触发的回调函数
280
280
  * @param option 配置项,这里默认配置once为true
281
281
  */
282
- animationend(element: HTMLElement | string | Element | DocumentFragment, handler: (this: HTMLElement, event: DOMUtils_Event["animationend"]) => void, option?: boolean | DOMUtilsEventListenerOption): {
282
+ onAnimationend(element: HTMLElement | string | Element | DocumentFragment, handler: (this: HTMLElement, event: DOMUtils_Event["animationend"]) => void, option?: boolean | DOMUtilsEventListenerOption): {
283
283
  off(): void;
284
284
  } | undefined;
285
285
  /**
286
- * 当过渡结束时触发事件
286
+ * 监听过渡结束
287
287
  * @param element 监听的元素
288
288
  * @param handler 触发的回调函数
289
289
  * @param option 配置项,这里默认配置once为true
290
290
  */
291
- transitionend(element: HTMLElement | string | Element | DocumentFragment, handler: (this: HTMLElement, event: DOMUtils_Event["transitionend"]) => void, option?: boolean | DOMUtilsEventListenerOption): {
291
+ onTransitionend(element: HTMLElement | string | Element | DocumentFragment, handler: (this: HTMLElement, event: DOMUtils_Event["transitionend"]) => void, option?: boolean | DOMUtilsEventListenerOption): {
292
292
  off(): void;
293
293
  } | undefined;
294
294
  /**
@@ -306,7 +306,7 @@ declare class ElementEvent extends ElementAnimate {
306
306
  * console.log("按键松开");
307
307
  * })
308
308
  */
309
- keyup(element: DOMUtilsTargetElementType | Element | DocumentFragment | Window | Node | typeof globalThis, handler: (this: HTMLElement, event: DOMUtils_Event["keyup"]) => void, option?: boolean | DOMUtilsEventListenerOption): void;
309
+ onKeyup(element: DOMUtilsTargetElementType | Element | DocumentFragment | Window | Node | typeof globalThis, handler: (this: HTMLElement, event: DOMUtils_Event["keyup"]) => void, option?: boolean | DOMUtilsEventListenerOption): void;
310
310
  /**
311
311
  * 当按键按下时触发事件
312
312
  * keydown - > keypress - > keyup
@@ -322,7 +322,7 @@ declare class ElementEvent extends ElementAnimate {
322
322
  * console.log("按键按下");
323
323
  * })
324
324
  */
325
- keydown(element: DOMUtilsTargetElementType | Element | DocumentFragment | Window | Node | typeof globalThis, handler: (this: HTMLElement, event: DOMUtils_Event["keydown"]) => void, option?: boolean | DOMUtilsEventListenerOption): void;
325
+ onKeydown(element: DOMUtilsTargetElementType | Element | DocumentFragment | Window | Node | typeof globalThis, handler: (this: HTMLElement, event: DOMUtils_Event["keydown"]) => void, option?: boolean | DOMUtilsEventListenerOption): void;
326
326
  /**
327
327
  * 当按键按下时触发事件
328
328
  * keydown - > keypress - > keyup
@@ -338,73 +338,101 @@ declare class ElementEvent extends ElementAnimate {
338
338
  * console.log("按键按下");
339
339
  * })
340
340
  */
341
- keypress(element: DOMUtilsTargetElementType | Element | DocumentFragment | Window | Node | typeof globalThis, handler: (this: HTMLElement, event: DOMUtils_Event["keypress"]) => void, option?: boolean | DOMUtilsEventListenerOption): void;
341
+ onKeypress(element: DOMUtilsTargetElementType | Element | DocumentFragment | Window | Node | typeof globalThis, handler: (this: HTMLElement, event: DOMUtils_Event["keypress"]) => void, option?: boolean | DOMUtilsEventListenerOption): void;
342
342
  /**
343
- * 监听某个元素键盘按键事件或window全局按键事件
344
- * 按下有值的键时触发,按下Ctrl\Alt\Shift\Meta是无值键。按下先触发keydown事件,再触发keypress事件。
345
- * @param element 需要监听的对象,可以是全局Window或者某个元素
346
- * @param eventName 事件名,默认keypress
347
- * @param callback 自己定义的回调事件,参数1为当前的key,参数2为组合按键,数组类型,包含ctrl、shift、alt和meta(win键或mac的cmd键)
343
+ * 监听某个元素键盘按键事件或window全局按键事件
344
+ * 按下有值的键时触发,按下Ctrl\Alt\Shift\Meta是无值键。按下先触发keydown事件,再触发keypress事件。
345
+ * @param element 需要监听的对象,可以是全局Window或者某个元素
346
+ * @param eventName 事件名,默认keypress,keydown - > keypress - > keyup
347
+ * @param handler 自己定义的回调事件,参数1为当前的key,参数2为组合按键,数组类型,包含ctrl、shift、alt和meta(win键或mac的cmd键)
348
348
  * @param options 监听事件的配置
349
- * @example
350
- Utils.listenKeyboard(window,(keyName,keyValue,otherKey,event)=>{
351
- if(keyName === "Enter"){
352
- console.log("回车按键的值是:"+keyValue)
353
- }
354
- if(otherKey.indexOf("ctrl") && keyName === "Enter" ){
355
- console.log("Ctrl和回车键");
356
- }
357
- })
358
- * @example
359
- 字母和数字键的键码值(keyCode)
360
- 按键 键码 按键 键码 按键 键码 按键 键码
361
- A 65 J 74 S 83 1 49
362
- B 66 K 75 T 84 2 50
363
- C 67 L 76 U 85 3 51
364
- D 68 M 77 V 86 4 52
365
- E 69 N 78 W 87 5 53
366
- F 70 O 79 X 88 6 54
367
- G 71 P 80 Y 89 7 55
368
- H 72 Q 81 Z 90 8 56
369
- I 73 R 82 0 48 9 57
370
-
371
- 数字键盘上的键的键码值(keyCode)
372
- 功能键键码值(keyCode)
373
- 按键 键码 按键 键码 按键 键码 按键 键码
374
- 0 96 8 104 F1 112 F7 118
375
- 1 97 9 105 F2 113 F8 119
376
- 2 98 * 106 F3 114 F9 120
377
- 3 99 + 107 F4 115 F10 121
378
- 4 100 Enter 108 F5 116 F11 122
379
- 5 101 - 109 F6 117 F12 123
380
- 6 102 . 110
381
- 7 103 / 111
382
-
383
- 控制键键码值(keyCode)
384
- 按键 键码 按键 键码 按键 键码 按键 键码
385
- BackSpace 8 Esc 27 → 39 -_ 189
386
- Tab 9 Spacebar 32 ↓ 40 .> 190
387
- Clear 12 Page Up 33 Insert 45 /? 191
388
- Enter 13 Page Down 34 Delete 46 `~ 192
389
- Shift 16 End 35 Num Lock 144 [{ 219
390
- Control 17 Home 36 ;: 186 \| 220
391
- Alt 18 ← 37 =+ 187 ]} 221
392
- Cape Lock 20 ↑ 38 ,< 188 '" 222
393
-
394
- 多媒体键码值(keyCode)
395
- 按键 键码
396
- 音量加 175
397
- 音量减 174
398
- 停止 179
399
- 静音 173
400
- 浏览器 172
401
- 邮件 180
402
- 搜索 170
403
- 收藏 171
404
- **/
405
- listenKeyboard(element: DOMUtilsTargetElementType | Element | DocumentFragment | Window | Node | typeof globalThis, eventName: "keyup" | "keypress" | "keydown" | undefined, callback: (keyName: string, keyValue: number, otherCodeList: string[], event: KeyboardEvent) => void, options?: DOMUtilsEventListenerOption | boolean): {
349
+ * @example
350
+ Utils.onKeyboard(window,(keyName,keyValue,otherKey,event)=>{
351
+ if(keyName === "Enter"){
352
+ console.log("回车按键的值是:"+keyValue)
353
+ }
354
+ if(otherKey.indexOf("ctrl") && keyName === "Enter" ){
355
+ console.log("Ctrl和回车键");
356
+ }
357
+ })
358
+ * @example
359
+ 字母和数字键的键码值(keyCode)
360
+ 按键 键码 按键 键码 按键 键码 按键 键码
361
+ A 65 J 74 S 83 1 49
362
+ B 66 K 75 T 84 2 50
363
+ C 67 L 76 U 85 3 51
364
+ D 68 M 77 V 86 4 52
365
+ E 69 N 78 W 87 5 53
366
+ F 70 O 79 X 88 6 54
367
+ G 71 P 80 Y 89 7 55
368
+ H 72 Q 81 Z 90 8 56
369
+ I 73 R 82 0 48 9 57
370
+
371
+ 数字键盘上的键的键码值(keyCode)
372
+ 功能键键码值(keyCode)
373
+ 按键 键码 按键 键码 按键 键码 按键 键码
374
+ 0 96 8 104 F1 112 F7 118
375
+ 1 97 9 105 F2 113 F8 119
376
+ 2 98 * 106 F3 114 F9 120
377
+ 3 99 + 107 F4 115 F10 121
378
+ 4 100 Enter 108 F5 116 F11 122
379
+ 5 101 - 109 F6 117 F12 123
380
+ 6 102 . 110
381
+ 7 103 / 111
382
+
383
+ 控制键键码值(keyCode)
384
+ 按键 键码 按键 键码 按键 键码 按键 键码
385
+ BackSpace 8 Esc 27 → 39 -_ 189
386
+ Tab 9 Spacebar 32 ↓ 40 .> 190
387
+ Clear 12 Page Up 33 Insert 45 /? 191
388
+ Enter 13 Page Down 34 Delete 46 `~ 192
389
+ Shift 16 End 35 Num Lock 144 [{ 219
390
+ Control 17 Home 36 ;: 186 \| 220
391
+ Alt 18 ← 37 =+ 187 ]} 221
392
+ Cape Lock 20 ↑ 38 ,< 188 '" 222
393
+
394
+ 多媒体键码值(keyCode)
395
+ 按键 键码
396
+ 音量加 175
397
+ 音量减 174
398
+ 停止 179
399
+ 静音 173
400
+ 浏览器 172
401
+ 邮件 180
402
+ 搜索 170
403
+ 收藏 171
404
+ **/
405
+ onKeyboard(element: DOMUtilsTargetElementType | Element | DocumentFragment | Window | Node | typeof globalThis, eventName: "keydown" | "keypress" | "keyup" | undefined, handler: (keyName: string, keyValue: number, otherCodeList: string[], event: KeyboardEvent) => void, options?: DOMUtilsEventListenerOption | boolean): {
406
406
  removeListen(): void;
407
407
  };
408
+ /**
409
+ * 监input、textarea的输入框值改变的事件(当输入法输入时,不会触发该监听)
410
+ * @param $el 输入框元素
411
+ * @param handler 回调函数
412
+ * @param option 配置
413
+ */
414
+ onInput($el: HTMLInputElement | HTMLTextAreaElement, handler: (evt: InputEvent) => void | Promise<void>, option?: DOMUtilsEventListenerOption | boolean): {
415
+ off: () => void;
416
+ };
417
+ /**
418
+ * 双击监听,适配移动端
419
+ * @param $el 监听的元素
420
+ * @param handler 处理的回调函数
421
+ * @param options 监听器的配置
422
+ */
423
+ onDoubleClick($el: DOMUtilsTargetElementType, handler: (event: MouseEvent | PointerEvent | TouchEvent, option: DOMUtilsDoubleClickOption) => void | Promise<void>, options?: DOMUtilsEventListenerOption | boolean): {
424
+ off(): void;
425
+ };
426
+ /**
427
+ * 双击监听,适配移动端
428
+ * @param $el 监听的元素
429
+ * @param selector 子元素选择器
430
+ * @param handler 处理的回调函数
431
+ * @param options 监听器的配置
432
+ */
433
+ onDoubleClick($el: DOMUtilsTargetElementType, selector: string | string[] | undefined | null, handler: (event: MouseEvent | PointerEvent | TouchEvent, option: DOMUtilsDoubleClickOption) => void | Promise<void>, options?: DOMUtilsEventListenerOption | boolean): {
434
+ off(): void;
435
+ };
408
436
  /**
409
437
  * 阻止事件传递
410
438
  * @param event 要阻止传递的事件
@@ -268,7 +268,20 @@ export declare interface DOMUtilsAddEventListenerResult {
268
268
  /**
269
269
  * 主动触发事件
270
270
  * @param details 赋予触发的Event的额外属性,如果是Event类型,那么将自动代替默认new的Event对象
271
- * @param useDispatchToTriggerEvent 是否使用dispatchEvent来触发事件,默认true,如果为false,则直接调用callback,但是这种会让使用了selectorTarget的没有值
271
+ * @param useDispatchToEmit 是否使用dispatchEvent来触发事件,默认true,如果为false,则直接调用callback,但是这种会让使用了selectorTarget的没有值
272
272
  */
273
- trigger(details?: object, useDispatchToTriggerEvent?: boolean): void;
273
+ emit(details?: object, useDispatchToEmit?: boolean): void;
274
274
  }
275
+
276
+ /**
277
+ * 传递的双击配置信息
278
+ */
279
+ export declare type DOMUtilsDoubleClickOption = {
280
+ /**
281
+ * 是否是双击
282
+ *
283
+ * + `true`:双击
284
+ * + `false`:单击
285
+ */
286
+ isDoubleClick: boolean;
287
+ };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "@whitesev/domutils",
4
- "version": "1.7.5",
4
+ "version": "1.8.1",
5
5
  "type": "module",
6
6
  "description": "适合在浏览器中操作DOM的常用工具类",
7
7
  "main": "dist/index.cjs.js",
@@ -32,27 +32,27 @@
32
32
  "author": "WhiteSev",
33
33
  "license": "MIT",
34
34
  "dependencies": {
35
- "worker-timers": "^8.0.25"
35
+ "worker-timers": "^8.0.27"
36
36
  },
37
37
  "devDependencies": {
38
- "@eslint/js": "^9.38.0",
39
- "@rollup/plugin-commonjs": "^28.0.9",
38
+ "@eslint/js": "^9.39.2",
39
+ "@rollup/plugin-commonjs": "^29.0.0",
40
40
  "@rollup/plugin-json": "^6.1.0",
41
41
  "@rollup/plugin-node-resolve": "^16.0.3",
42
42
  "@rollup/plugin-terser": "^0.4.4",
43
43
  "@rollup/plugin-typescript": "^12.3.0",
44
- "browserslist": "^4.27.0",
45
- "caniuse-lite": "^1.0.30001751",
46
- "eslint": "^9.38.0",
44
+ "browserslist": "^4.28.1",
45
+ "caniuse-lite": "^1.0.30001761",
46
+ "eslint": "^9.39.2",
47
47
  "eslint-config-prettier": "^10.1.8",
48
48
  "eslint-plugin-compat": "^6.0.2",
49
49
  "eslint-plugin-prettier": "^5.5.4",
50
- "globals": "^16.4.0",
51
- "rollup": "^4.52.5",
50
+ "globals": "^16.5.0",
51
+ "rollup": "^4.54.0",
52
52
  "rollup-plugin-clear": "^2.0.7",
53
53
  "tslib": "^2.8.1",
54
54
  "typescript": "^5.9.3",
55
- "typescript-eslint": "^8.46.2"
55
+ "typescript-eslint": "^8.50.0"
56
56
  },
57
57
  "scripts": {
58
58
  "lint": "eslint .",