@whitesev/domutils 1.9.3 → 1.9.4
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 +14 -9
- package/dist/index.amd.js.map +1 -1
- package/dist/index.amd.min.js +1 -1
- package/dist/index.amd.min.js.map +1 -1
- package/dist/index.cjs.js +14 -9
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.cjs.min.js +1 -1
- package/dist/index.cjs.min.js.map +1 -1
- package/dist/index.esm.js +14 -9
- package/dist/index.esm.js.map +1 -1
- package/dist/index.esm.min.js +1 -1
- package/dist/index.esm.min.js.map +1 -1
- package/dist/index.iife.js +14 -9
- package/dist/index.iife.js.map +1 -1
- package/dist/index.iife.min.js +1 -1
- package/dist/index.iife.min.js.map +1 -1
- package/dist/index.system.js +14 -9
- package/dist/index.system.js.map +1 -1
- package/dist/index.system.min.js +1 -1
- package/dist/index.system.min.js.map +1 -1
- package/dist/index.umd.js +14 -9
- package/dist/index.umd.js.map +1 -1
- package/dist/index.umd.min.js +1 -1
- package/dist/index.umd.min.js.map +1 -1
- package/dist/types/src/ElementEvent.d.ts +2 -2
- package/dist/types/src/types/DOMUtilsEvent.d.ts +17 -0
- package/package.json +1 -1
- package/src/ElementEvent.ts +48 -24
- package/src/types/DOMUtilsEvent.d.ts +17 -0
package/src/ElementEvent.ts
CHANGED
|
@@ -6,6 +6,8 @@ import type {
|
|
|
6
6
|
DOMUtils_Event,
|
|
7
7
|
DOMUtils_EventType,
|
|
8
8
|
DOMUtilsAddEventListenerResult,
|
|
9
|
+
DOMUtilsDoubleClickHandler,
|
|
10
|
+
DOMUtilsDoubleClickHandlerWithSelector,
|
|
9
11
|
DOMUtilsDoubleClickOption,
|
|
10
12
|
DOMUtilsElementEventType,
|
|
11
13
|
DOMUtilsEventListenerOption,
|
|
@@ -1398,7 +1400,7 @@ class ElementEvent extends ElementAnimate {
|
|
|
1398
1400
|
* @param options 监听器的配置
|
|
1399
1401
|
*/
|
|
1400
1402
|
onDoubleClick(
|
|
1401
|
-
$el:
|
|
1403
|
+
$el: DOMUtilsElementEventType,
|
|
1402
1404
|
handler: (event: MouseEvent | PointerEvent | TouchEvent, option: DOMUtilsDoubleClickOption) => void | Promise<void>,
|
|
1403
1405
|
options?: DOMUtilsEventListenerOption | boolean
|
|
1404
1406
|
): {
|
|
@@ -1411,10 +1413,14 @@ class ElementEvent extends ElementAnimate {
|
|
|
1411
1413
|
* @param handler 处理的回调函数
|
|
1412
1414
|
* @param options 监听器的配置
|
|
1413
1415
|
*/
|
|
1414
|
-
onDoubleClick(
|
|
1415
|
-
$el:
|
|
1416
|
-
selector: string | string[]
|
|
1417
|
-
handler: (
|
|
1416
|
+
onDoubleClick<T = HTMLElement>(
|
|
1417
|
+
$el: DOMUtilsElementEventType,
|
|
1418
|
+
selector: string | string[],
|
|
1419
|
+
handler: (
|
|
1420
|
+
event: MouseEvent | PointerEvent | TouchEvent,
|
|
1421
|
+
$selector: T,
|
|
1422
|
+
option: DOMUtilsDoubleClickOption
|
|
1423
|
+
) => void | Promise<void>,
|
|
1418
1424
|
options?: DOMUtilsEventListenerOption | boolean
|
|
1419
1425
|
): {
|
|
1420
1426
|
off(): void;
|
|
@@ -1422,12 +1428,9 @@ class ElementEvent extends ElementAnimate {
|
|
|
1422
1428
|
onDoubleClick(...args: any[]): {
|
|
1423
1429
|
off(): void;
|
|
1424
1430
|
} {
|
|
1425
|
-
const $el:
|
|
1431
|
+
const $el: DOMUtilsElementEventType = args[0];
|
|
1426
1432
|
let selector: string | string[] | undefined | null = void 0;
|
|
1427
|
-
let handler:
|
|
1428
|
-
event: MouseEvent | PointerEvent | TouchEvent,
|
|
1429
|
-
option: DOMUtilsDoubleClickOption
|
|
1430
|
-
) => void | Promise<void>;
|
|
1433
|
+
let handler: DOMUtilsDoubleClickHandler | DOMUtilsDoubleClickHandlerWithSelector;
|
|
1431
1434
|
let options: DOMUtilsEventListenerOption | boolean | undefined;
|
|
1432
1435
|
if (args.length === 2) {
|
|
1433
1436
|
if (typeof args[1] === "function") {
|
|
@@ -1459,26 +1462,39 @@ class ElementEvent extends ElementAnimate {
|
|
|
1459
1462
|
/** 检测是否是单击的延迟时间 */
|
|
1460
1463
|
const checkClickTime = 200;
|
|
1461
1464
|
|
|
1462
|
-
const dblclick_handler = async (
|
|
1465
|
+
const dblclick_handler = async (
|
|
1466
|
+
evt: MouseEvent | PointerEvent | TouchEvent,
|
|
1467
|
+
option: DOMUtilsDoubleClickOption,
|
|
1468
|
+
$selector?: HTMLElement
|
|
1469
|
+
) => {
|
|
1463
1470
|
if (evt.type === "dblclick" && isMobileTouch) {
|
|
1464
1471
|
// 禁止在移动端触发dblclick事件
|
|
1465
1472
|
return;
|
|
1466
1473
|
}
|
|
1467
|
-
|
|
1474
|
+
if ($selector) {
|
|
1475
|
+
await (<DOMUtilsDoubleClickHandlerWithSelector>handler)(evt, $selector, option);
|
|
1476
|
+
} else {
|
|
1477
|
+
await (<DOMUtilsDoubleClickHandler>handler)(evt, option);
|
|
1478
|
+
}
|
|
1468
1479
|
};
|
|
1469
1480
|
|
|
1470
1481
|
const dblClickListener = this.on(
|
|
1471
1482
|
$el,
|
|
1472
1483
|
"dblclick",
|
|
1473
|
-
|
|
1484
|
+
selector,
|
|
1485
|
+
(evt, $selector) => {
|
|
1474
1486
|
this.preventEvent(evt);
|
|
1475
|
-
dblclick_handler(
|
|
1476
|
-
|
|
1477
|
-
|
|
1487
|
+
dblclick_handler(
|
|
1488
|
+
evt,
|
|
1489
|
+
{
|
|
1490
|
+
isDoubleClick: true,
|
|
1491
|
+
},
|
|
1492
|
+
$selector
|
|
1493
|
+
);
|
|
1478
1494
|
},
|
|
1479
1495
|
options
|
|
1480
1496
|
);
|
|
1481
|
-
const
|
|
1497
|
+
const pointerUpListener = this.on(
|
|
1482
1498
|
$el,
|
|
1483
1499
|
"pointerup",
|
|
1484
1500
|
selector,
|
|
@@ -1493,16 +1509,24 @@ class ElementEvent extends ElementAnimate {
|
|
|
1493
1509
|
isDoubleClick = false;
|
|
1494
1510
|
$click = null;
|
|
1495
1511
|
/* 判定为双击 */
|
|
1496
|
-
dblclick_handler(
|
|
1497
|
-
|
|
1498
|
-
|
|
1512
|
+
dblclick_handler(
|
|
1513
|
+
evt,
|
|
1514
|
+
{
|
|
1515
|
+
isDoubleClick: true,
|
|
1516
|
+
},
|
|
1517
|
+
$selector
|
|
1518
|
+
);
|
|
1499
1519
|
} else {
|
|
1500
1520
|
timer = setTimeout(() => {
|
|
1501
1521
|
isDoubleClick = false;
|
|
1502
1522
|
// 判断为单击
|
|
1503
|
-
dblclick_handler(
|
|
1504
|
-
|
|
1505
|
-
|
|
1523
|
+
dblclick_handler(
|
|
1524
|
+
evt,
|
|
1525
|
+
{
|
|
1526
|
+
isDoubleClick: false,
|
|
1527
|
+
},
|
|
1528
|
+
$selector
|
|
1529
|
+
);
|
|
1506
1530
|
}, checkClickTime);
|
|
1507
1531
|
isDoubleClick = true;
|
|
1508
1532
|
$click = $selector;
|
|
@@ -1515,7 +1539,7 @@ class ElementEvent extends ElementAnimate {
|
|
|
1515
1539
|
off() {
|
|
1516
1540
|
$click = null;
|
|
1517
1541
|
dblClickListener.off();
|
|
1518
|
-
|
|
1542
|
+
pointerUpListener.off();
|
|
1519
1543
|
},
|
|
1520
1544
|
};
|
|
1521
1545
|
}
|
|
@@ -418,3 +418,20 @@ export declare type DOMUtilsDoubleClickOption = {
|
|
|
418
418
|
*/
|
|
419
419
|
isDoubleClick: boolean;
|
|
420
420
|
};
|
|
421
|
+
|
|
422
|
+
/**
|
|
423
|
+
* 双击的处理函数
|
|
424
|
+
*/
|
|
425
|
+
export declare type DOMUtilsDoubleClickHandler = (
|
|
426
|
+
event: MouseEvent | PointerEvent | TouchEvent,
|
|
427
|
+
option: DOMUtilsDoubleClickOption
|
|
428
|
+
) => void | Promise<void>;
|
|
429
|
+
|
|
430
|
+
/**
|
|
431
|
+
* 双击的处理函数(传入了selector)
|
|
432
|
+
*/
|
|
433
|
+
export declare type DOMUtilsDoubleClickHandlerWithSelector<T = HTMLElement> = (
|
|
434
|
+
event: MouseEvent | PointerEvent | TouchEvent,
|
|
435
|
+
$selector: T,
|
|
436
|
+
option: DOMUtilsDoubleClickOption
|
|
437
|
+
) => void | Promise<void>;
|