@whitesev/domutils 1.4.4 → 1.4.6
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.
- package/dist/index.amd.js +12 -8
- package/dist/index.amd.js.map +1 -1
- package/dist/index.cjs.js +12 -8
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +12 -8
- package/dist/index.esm.js.map +1 -1
- package/dist/index.iife.js +12 -8
- package/dist/index.iife.js.map +1 -1
- package/dist/index.system.js +12 -8
- package/dist/index.system.js.map +1 -1
- package/dist/index.umd.js +12 -8
- package/dist/index.umd.js.map +1 -1
- package/dist/types/src/DOMUtilsEvent.d.ts +6 -6
- package/package.json +1 -1
- package/src/DOMUtils.ts +1 -1
- package/src/DOMUtilsEvent.ts +53 -19
|
@@ -67,7 +67,7 @@ export declare class DOMUtilsEvent {
|
|
|
67
67
|
* console.log("事件触发",event)
|
|
68
68
|
* })
|
|
69
69
|
*/
|
|
70
|
-
on<T extends DOMUtils_EventType>(element: DOMUtilsElementEventType, eventType: T | T[], selector: string | string[] | undefined | null, callback: (this: HTMLElement, event: DOMUtils_Event[T]) => void, option?: DOMUtilsEventListenerOption | boolean): void;
|
|
70
|
+
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): void;
|
|
71
71
|
/**
|
|
72
72
|
* 绑定事件
|
|
73
73
|
* @param element 需要绑定的元素|元素数组|window
|
|
@@ -92,7 +92,7 @@ export declare class DOMUtilsEvent {
|
|
|
92
92
|
* console.log("事件触发",event)
|
|
93
93
|
* })
|
|
94
94
|
*/
|
|
95
|
-
on<T extends Event>(element: DOMUtilsElementEventType, eventType: string, selector: string | string[] | (() => string | string[]) | undefined | null, callback: (this: HTMLElement, event: T) => void, option?: DOMUtilsEventListenerOption | boolean): void;
|
|
95
|
+
on<T extends Event>(element: DOMUtilsElementEventType, eventType: string, selector: string | string[] | (() => string | string[]) | undefined | null, callback: (this: HTMLElement, event: T, selectorTarget?: HTMLElement) => void, option?: DOMUtilsEventListenerOption | boolean): void;
|
|
96
96
|
/**
|
|
97
97
|
* 取消绑定事件
|
|
98
98
|
* @param element 需要取消绑定的元素|元素数组
|
|
@@ -106,7 +106,7 @@ export declare class DOMUtilsEvent {
|
|
|
106
106
|
* DOMUtils.off(document.querySelector("a.xx"),"click")
|
|
107
107
|
* DOMUtils.off("a.xx","click")
|
|
108
108
|
*/
|
|
109
|
-
off<T extends DOMUtils_EventType>(element: DOMUtilsElementEventType, eventType: T | T[], callback?: (this: HTMLElement, event: DOMUtils_Event[T]) => void, option?: boolean | EventListenerOptions, filter?: (value: DOMUtilsEventListenerOptionsAttribute, index: number, array: DOMUtilsEventListenerOptionsAttribute[]) => boolean): void;
|
|
109
|
+
off<T extends DOMUtils_EventType>(element: DOMUtilsElementEventType, eventType: T | T[], callback?: (this: HTMLElement, event: DOMUtils_Event[T], selectorTarget?: HTMLElement) => void, option?: boolean | EventListenerOptions, filter?: (value: DOMUtilsEventListenerOptionsAttribute, index: number, array: DOMUtilsEventListenerOptionsAttribute[]) => boolean): void;
|
|
110
110
|
/**
|
|
111
111
|
* 取消绑定事件
|
|
112
112
|
* @param element 需要取消绑定的元素|元素数组
|
|
@@ -120,7 +120,7 @@ export declare class DOMUtilsEvent {
|
|
|
120
120
|
* DOMUtils.off(document.querySelector("a.xx"),"click")
|
|
121
121
|
* DOMUtils.off("a.xx","click")
|
|
122
122
|
*/
|
|
123
|
-
off<T extends Event>(element: DOMUtilsElementEventType, eventType: string, callback?: (this: HTMLElement, event: T) => void, option?: boolean | EventListenerOptions, filter?: (value: DOMUtilsEventListenerOptionsAttribute, index: number, array: DOMUtilsEventListenerOptionsAttribute[]) => boolean): void;
|
|
123
|
+
off<T extends Event>(element: DOMUtilsElementEventType, eventType: string, callback?: (this: HTMLElement, event: T, selectorTarget?: HTMLElement) => void, option?: boolean | EventListenerOptions, filter?: (value: DOMUtilsEventListenerOptionsAttribute, index: number, array: DOMUtilsEventListenerOptionsAttribute[]) => boolean): void;
|
|
124
124
|
/**
|
|
125
125
|
* 取消绑定事件
|
|
126
126
|
* @param element 需要取消绑定的元素|元素数组
|
|
@@ -135,7 +135,7 @@ export declare class DOMUtilsEvent {
|
|
|
135
135
|
* DOMUtils.off(document.querySelector("a.xx"),"click tap hover")
|
|
136
136
|
* DOMUtils.off("a.xx",["click","tap","hover"])
|
|
137
137
|
*/
|
|
138
|
-
off<T extends DOMUtils_EventType>(element: DOMUtilsElementEventType, eventType: T | T[], selector?: DOMUtilsEventListenerOptionsAttribute["selector"] | undefined, callback?: (this: HTMLElement, event: DOMUtils_Event[T]) => void, option?: boolean | EventListenerOptions, filter?: (value: DOMUtilsEventListenerOptionsAttribute, index: number, array: DOMUtilsEventListenerOptionsAttribute[]) => boolean): void;
|
|
138
|
+
off<T extends DOMUtils_EventType>(element: DOMUtilsElementEventType, eventType: T | T[], selector?: DOMUtilsEventListenerOptionsAttribute["selector"] | undefined, callback?: (this: HTMLElement, event: DOMUtils_Event[T], selectorTarget?: HTMLElement) => void, option?: boolean | EventListenerOptions, filter?: (value: DOMUtilsEventListenerOptionsAttribute, index: number, array: DOMUtilsEventListenerOptionsAttribute[]) => boolean): void;
|
|
139
139
|
/**
|
|
140
140
|
* 取消绑定事件
|
|
141
141
|
* @param element 需要取消绑定的元素|元素数组
|
|
@@ -150,7 +150,7 @@ export declare class DOMUtilsEvent {
|
|
|
150
150
|
* DOMUtils.off(document.querySelector("a.xx"),"click tap hover")
|
|
151
151
|
* DOMUtils.off("a.xx",["click","tap","hover"])
|
|
152
152
|
*/
|
|
153
|
-
off<T extends Event>(element: DOMUtilsElementEventType, eventType: string, selector?: DOMUtilsEventListenerOptionsAttribute["selector"] | undefined, callback?: (this: HTMLElement, event: T) => void, option?: boolean | EventListenerOptions, filter?: (value: DOMUtilsEventListenerOptionsAttribute, index: number, array: DOMUtilsEventListenerOptionsAttribute[]) => boolean): void;
|
|
153
|
+
off<T extends Event>(element: DOMUtilsElementEventType, eventType: string, selector?: DOMUtilsEventListenerOptionsAttribute["selector"] | undefined, callback?: (this: HTMLElement, event: T, selectorTarget?: HTMLElement) => void, option?: boolean | EventListenerOptions, filter?: (value: DOMUtilsEventListenerOptionsAttribute, index: number, array: DOMUtilsEventListenerOptionsAttribute[]) => boolean): void;
|
|
154
154
|
/**
|
|
155
155
|
* 取消绑定所有的事件
|
|
156
156
|
* @param element 需要取消绑定的元素|元素数组
|
package/package.json
CHANGED
package/src/DOMUtils.ts
CHANGED
package/src/DOMUtilsEvent.ts
CHANGED
|
@@ -94,7 +94,11 @@ export class DOMUtilsEvent {
|
|
|
94
94
|
element: DOMUtilsElementEventType,
|
|
95
95
|
eventType: T | T[],
|
|
96
96
|
selector: string | string[] | undefined | null,
|
|
97
|
-
callback: (
|
|
97
|
+
callback: (
|
|
98
|
+
this: HTMLElement,
|
|
99
|
+
event: DOMUtils_Event[T],
|
|
100
|
+
selectorTarget?: HTMLElement
|
|
101
|
+
) => void,
|
|
98
102
|
option?: DOMUtilsEventListenerOption | boolean
|
|
99
103
|
): void;
|
|
100
104
|
/**
|
|
@@ -125,7 +129,11 @@ export class DOMUtilsEvent {
|
|
|
125
129
|
element: DOMUtilsElementEventType,
|
|
126
130
|
eventType: string,
|
|
127
131
|
selector: string | string[] | (() => string | string[]) | undefined | null,
|
|
128
|
-
callback: (
|
|
132
|
+
callback: (
|
|
133
|
+
this: HTMLElement,
|
|
134
|
+
event: T,
|
|
135
|
+
selectorTarget?: HTMLElement
|
|
136
|
+
) => void,
|
|
129
137
|
option?: DOMUtilsEventListenerOption | boolean
|
|
130
138
|
): void;
|
|
131
139
|
on<T extends Event>(
|
|
@@ -144,10 +152,10 @@ export class DOMUtilsEvent {
|
|
|
144
152
|
| string
|
|
145
153
|
| undefined
|
|
146
154
|
| string[]
|
|
147
|
-
| ((this: HTMLElement, event: T) => void)
|
|
155
|
+
| ((this: HTMLElement, event: T, selectorTarget?: HTMLElement) => void)
|
|
148
156
|
| null,
|
|
149
157
|
callback?:
|
|
150
|
-
| ((this: HTMLElement, event: T) => void)
|
|
158
|
+
| ((this: HTMLElement, event: T, selectorTarget?: HTMLElement) => void)
|
|
151
159
|
| DOMUtilsEventListenerOption
|
|
152
160
|
| boolean,
|
|
153
161
|
option?: DOMUtilsEventListenerOption | boolean
|
|
@@ -217,8 +225,11 @@ export class DOMUtilsEvent {
|
|
|
217
225
|
selectorList.push(selector);
|
|
218
226
|
}
|
|
219
227
|
// 事件回调
|
|
220
|
-
let listenerCallBack: (
|
|
221
|
-
|
|
228
|
+
let listenerCallBack: (
|
|
229
|
+
this: HTMLElement,
|
|
230
|
+
event: Event,
|
|
231
|
+
selectorTarget?: HTMLElement
|
|
232
|
+
) => void = callback as any;
|
|
222
233
|
// 事件配置
|
|
223
234
|
let listenerOption: DOMUtilsEventListenerOption = {
|
|
224
235
|
capture: false,
|
|
@@ -266,7 +277,7 @@ export class DOMUtilsEvent {
|
|
|
266
277
|
const selectorItem = selectorList[index];
|
|
267
278
|
if (eventTarget.matches(selectorItem)) {
|
|
268
279
|
/* 当前目标可以被selector所匹配到 */
|
|
269
|
-
listenerCallBack.call(eventTarget, event as any);
|
|
280
|
+
listenerCallBack.call(eventTarget, event as any, eventTarget);
|
|
270
281
|
checkOptionOnceToRemoveEventListener();
|
|
271
282
|
break;
|
|
272
283
|
} else {
|
|
@@ -276,12 +287,19 @@ export class DOMUtilsEvent {
|
|
|
276
287
|
) as HTMLElement | null;
|
|
277
288
|
if ($closestMatches && totalParent.contains($closestMatches)) {
|
|
278
289
|
/* event的target值不能直接修改 */
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
290
|
+
// 这里尝试使用defineProperty修改event的target值
|
|
291
|
+
try {
|
|
292
|
+
OriginPrototype.Object.defineProperty(event, "target", {
|
|
293
|
+
get() {
|
|
294
|
+
return $closestMatches;
|
|
295
|
+
},
|
|
296
|
+
});
|
|
297
|
+
} catch (error) {}
|
|
298
|
+
listenerCallBack.call(
|
|
299
|
+
$closestMatches,
|
|
300
|
+
event as any,
|
|
301
|
+
$closestMatches
|
|
302
|
+
);
|
|
285
303
|
checkOptionOnceToRemoveEventListener();
|
|
286
304
|
break;
|
|
287
305
|
}
|
|
@@ -335,7 +353,11 @@ export class DOMUtilsEvent {
|
|
|
335
353
|
off<T extends DOMUtils_EventType>(
|
|
336
354
|
element: DOMUtilsElementEventType,
|
|
337
355
|
eventType: T | T[],
|
|
338
|
-
callback?: (
|
|
356
|
+
callback?: (
|
|
357
|
+
this: HTMLElement,
|
|
358
|
+
event: DOMUtils_Event[T],
|
|
359
|
+
selectorTarget?: HTMLElement
|
|
360
|
+
) => void,
|
|
339
361
|
option?: boolean | EventListenerOptions,
|
|
340
362
|
filter?: (
|
|
341
363
|
value: DOMUtilsEventListenerOptionsAttribute,
|
|
@@ -359,7 +381,11 @@ export class DOMUtilsEvent {
|
|
|
359
381
|
off<T extends Event>(
|
|
360
382
|
element: DOMUtilsElementEventType,
|
|
361
383
|
eventType: string,
|
|
362
|
-
callback?: (
|
|
384
|
+
callback?: (
|
|
385
|
+
this: HTMLElement,
|
|
386
|
+
event: T,
|
|
387
|
+
selectorTarget?: HTMLElement
|
|
388
|
+
) => void,
|
|
363
389
|
option?: boolean | EventListenerOptions,
|
|
364
390
|
filter?: (
|
|
365
391
|
value: DOMUtilsEventListenerOptionsAttribute,
|
|
@@ -385,7 +411,11 @@ export class DOMUtilsEvent {
|
|
|
385
411
|
element: DOMUtilsElementEventType,
|
|
386
412
|
eventType: T | T[],
|
|
387
413
|
selector?: DOMUtilsEventListenerOptionsAttribute["selector"] | undefined,
|
|
388
|
-
callback?: (
|
|
414
|
+
callback?: (
|
|
415
|
+
this: HTMLElement,
|
|
416
|
+
event: DOMUtils_Event[T],
|
|
417
|
+
selectorTarget?: HTMLElement
|
|
418
|
+
) => void,
|
|
389
419
|
option?: boolean | EventListenerOptions,
|
|
390
420
|
filter?: (
|
|
391
421
|
value: DOMUtilsEventListenerOptionsAttribute,
|
|
@@ -411,7 +441,11 @@ export class DOMUtilsEvent {
|
|
|
411
441
|
element: DOMUtilsElementEventType,
|
|
412
442
|
eventType: string,
|
|
413
443
|
selector?: DOMUtilsEventListenerOptionsAttribute["selector"] | undefined,
|
|
414
|
-
callback?: (
|
|
444
|
+
callback?: (
|
|
445
|
+
this: HTMLElement,
|
|
446
|
+
event: T,
|
|
447
|
+
selectorTarget?: HTMLElement
|
|
448
|
+
) => void,
|
|
415
449
|
option?: boolean | EventListenerOptions,
|
|
416
450
|
filter?: (
|
|
417
451
|
value: DOMUtilsEventListenerOptionsAttribute,
|
|
@@ -434,9 +468,9 @@ export class DOMUtilsEvent {
|
|
|
434
468
|
selector?:
|
|
435
469
|
| DOMUtilsEventListenerOptionsAttribute["selector"]
|
|
436
470
|
| undefined
|
|
437
|
-
| ((this: HTMLElement, event: T) => void),
|
|
471
|
+
| ((this: HTMLElement, event: T, selectorTarget?: HTMLElement) => void),
|
|
438
472
|
callback?:
|
|
439
|
-
| ((this: HTMLElement, event: T) => void)
|
|
473
|
+
| ((this: HTMLElement, event: T, selectorTarget?: HTMLElement) => void)
|
|
440
474
|
| boolean
|
|
441
475
|
| EventListenerOptions,
|
|
442
476
|
option?:
|