@whitesev/domutils 1.9.5 → 1.9.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 +116 -36
- 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 +116 -36
- 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 +116 -36
- 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 +116 -36
- 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 +116 -36
- 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 +116 -36
- 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 +70 -18
- package/package.json +1 -1
- package/src/ElementEvent.ts +200 -45
- package/src/Utils.ts +0 -3
package/dist/index.amd.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
define((function () { 'use strict';
|
|
2
2
|
|
|
3
|
-
const version = "1.9.
|
|
3
|
+
const version = "1.9.6";
|
|
4
4
|
|
|
5
5
|
class WindowApi {
|
|
6
6
|
/** 默认的配置 */
|
|
@@ -1931,7 +1931,8 @@ define((function () { 'use strict';
|
|
|
1931
1931
|
that.emit(element, "click", details, useDispatchToEmit);
|
|
1932
1932
|
}
|
|
1933
1933
|
else {
|
|
1934
|
-
that.on(element, "click", null, handler);
|
|
1934
|
+
const listener = that.on(element, "click", null, handler);
|
|
1935
|
+
return listener;
|
|
1935
1936
|
}
|
|
1936
1937
|
}
|
|
1937
1938
|
/**
|
|
@@ -1967,7 +1968,8 @@ define((function () { 'use strict';
|
|
|
1967
1968
|
that.emit(element, "blur", details, useDispatchToEmit);
|
|
1968
1969
|
}
|
|
1969
1970
|
else {
|
|
1970
|
-
that.on(element, "blur", null, handler);
|
|
1971
|
+
const listener = that.on(element, "blur", null, handler);
|
|
1972
|
+
return listener;
|
|
1971
1973
|
}
|
|
1972
1974
|
}
|
|
1973
1975
|
/**
|
|
@@ -2003,7 +2005,8 @@ define((function () { 'use strict';
|
|
|
2003
2005
|
that.emit(element, "focus", details, useDispatchToEmit);
|
|
2004
2006
|
}
|
|
2005
2007
|
else {
|
|
2006
|
-
that.on(element, "focus", null, handler);
|
|
2008
|
+
const listener = that.on(element, "focus", null, handler);
|
|
2009
|
+
return listener;
|
|
2007
2010
|
}
|
|
2008
2011
|
}
|
|
2009
2012
|
/**
|
|
@@ -2030,13 +2033,30 @@ define((function () { 'use strict';
|
|
|
2030
2033
|
}
|
|
2031
2034
|
if (CommonUtils.isNodeList(element)) {
|
|
2032
2035
|
// 设置
|
|
2036
|
+
const listenerList = [];
|
|
2033
2037
|
element.forEach(($ele) => {
|
|
2034
|
-
that.onHover($ele, handler, option);
|
|
2038
|
+
const listener = that.onHover($ele, handler, option);
|
|
2039
|
+
listenerList.push(listener);
|
|
2035
2040
|
});
|
|
2036
|
-
return
|
|
2041
|
+
return {
|
|
2042
|
+
off() {
|
|
2043
|
+
listenerList.forEach((listener) => {
|
|
2044
|
+
if (!listener) {
|
|
2045
|
+
return;
|
|
2046
|
+
}
|
|
2047
|
+
listener.off();
|
|
2048
|
+
});
|
|
2049
|
+
},
|
|
2050
|
+
};
|
|
2037
2051
|
}
|
|
2038
|
-
that.on(element, "mouseenter", null, handler, option);
|
|
2039
|
-
that.on(element, "mouseleave", null, handler, option);
|
|
2052
|
+
const mouseenter_listener = that.on(element, "mouseenter", null, handler, option);
|
|
2053
|
+
const mouseleave_listener = that.on(element, "mouseleave", null, handler, option);
|
|
2054
|
+
return {
|
|
2055
|
+
off() {
|
|
2056
|
+
mouseenter_listener.off();
|
|
2057
|
+
mouseleave_listener.off();
|
|
2058
|
+
},
|
|
2059
|
+
};
|
|
2040
2060
|
}
|
|
2041
2061
|
/**
|
|
2042
2062
|
* 监听动画结束
|
|
@@ -2119,12 +2139,23 @@ define((function () { 'use strict';
|
|
|
2119
2139
|
}
|
|
2120
2140
|
if (CommonUtils.isNodeList(element)) {
|
|
2121
2141
|
// 设置
|
|
2142
|
+
const listenerList = [];
|
|
2122
2143
|
element.forEach(($ele) => {
|
|
2123
|
-
that.onKeyup($ele, handler, option);
|
|
2144
|
+
const listener = that.onKeyup($ele, handler, option);
|
|
2145
|
+
listenerList.push(listener);
|
|
2124
2146
|
});
|
|
2125
|
-
return
|
|
2147
|
+
return {
|
|
2148
|
+
off() {
|
|
2149
|
+
listenerList.forEach((listener) => {
|
|
2150
|
+
if (!listener) {
|
|
2151
|
+
return;
|
|
2152
|
+
}
|
|
2153
|
+
listener.off();
|
|
2154
|
+
});
|
|
2155
|
+
},
|
|
2156
|
+
};
|
|
2126
2157
|
}
|
|
2127
|
-
that.on(element, "keyup", null, handler, option);
|
|
2158
|
+
return that.on(element, "keyup", null, handler, option);
|
|
2128
2159
|
}
|
|
2129
2160
|
/**
|
|
2130
2161
|
* 当按键按下时触发事件
|
|
@@ -2151,12 +2182,23 @@ define((function () { 'use strict';
|
|
|
2151
2182
|
}
|
|
2152
2183
|
if (CommonUtils.isNodeList(element)) {
|
|
2153
2184
|
// 设置
|
|
2185
|
+
const listenerList = [];
|
|
2154
2186
|
element.forEach(($ele) => {
|
|
2155
|
-
that.onKeydown($ele, handler, option);
|
|
2187
|
+
const listener = that.onKeydown($ele, handler, option);
|
|
2188
|
+
listenerList.push(listener);
|
|
2156
2189
|
});
|
|
2157
|
-
return
|
|
2190
|
+
return {
|
|
2191
|
+
off() {
|
|
2192
|
+
listenerList.forEach((listener) => {
|
|
2193
|
+
if (!listener) {
|
|
2194
|
+
return;
|
|
2195
|
+
}
|
|
2196
|
+
listener.off();
|
|
2197
|
+
});
|
|
2198
|
+
},
|
|
2199
|
+
};
|
|
2158
2200
|
}
|
|
2159
|
-
that.on(element, "keydown", null, handler, option);
|
|
2201
|
+
return that.on(element, "keydown", null, handler, option);
|
|
2160
2202
|
}
|
|
2161
2203
|
/**
|
|
2162
2204
|
* 当按键按下时触发事件
|
|
@@ -2183,12 +2225,23 @@ define((function () { 'use strict';
|
|
|
2183
2225
|
}
|
|
2184
2226
|
if (CommonUtils.isNodeList(element)) {
|
|
2185
2227
|
// 设置
|
|
2228
|
+
const listenerList = [];
|
|
2186
2229
|
element.forEach(($ele) => {
|
|
2187
|
-
that.onKeypress($ele, handler, option);
|
|
2230
|
+
const listener = that.onKeypress($ele, handler, option);
|
|
2231
|
+
listenerList.push(listener);
|
|
2188
2232
|
});
|
|
2189
|
-
return
|
|
2233
|
+
return {
|
|
2234
|
+
off() {
|
|
2235
|
+
listenerList.forEach((listener) => {
|
|
2236
|
+
if (!listener) {
|
|
2237
|
+
return;
|
|
2238
|
+
}
|
|
2239
|
+
listener.off();
|
|
2240
|
+
});
|
|
2241
|
+
},
|
|
2242
|
+
};
|
|
2190
2243
|
}
|
|
2191
|
-
that.on(element, "keypress", null, handler, option);
|
|
2244
|
+
return that.on(element, "keypress", null, handler, option);
|
|
2192
2245
|
}
|
|
2193
2246
|
/**
|
|
2194
2247
|
* 监听某个元素键盘按键事件或window全局按键事件
|
|
@@ -2281,12 +2334,8 @@ define((function () { 'use strict';
|
|
|
2281
2334
|
handler(keyName, keyValue, otherCodeList, event);
|
|
2282
2335
|
}
|
|
2283
2336
|
};
|
|
2284
|
-
that.on(element, eventName, keyboardEventCallBack, options);
|
|
2285
|
-
return
|
|
2286
|
-
removeListen: () => {
|
|
2287
|
-
that.off(element, eventName, keyboardEventCallBack, options);
|
|
2288
|
-
},
|
|
2289
|
-
};
|
|
2337
|
+
const listener = that.on(element, eventName, keyboardEventCallBack, options);
|
|
2338
|
+
return listener;
|
|
2290
2339
|
}
|
|
2291
2340
|
/**
|
|
2292
2341
|
* 监input、textarea的输入框值改变的事件(当输入法输入时,不会触发该监听)
|
|
@@ -2317,11 +2366,14 @@ define((function () { 'use strict';
|
|
|
2317
2366
|
const compositionStartListener = this.on($el, "compositionstart", __composition_start_callback, option);
|
|
2318
2367
|
const compositionEndListener = this.on($el, "compositionend", __composition_end_callback, option);
|
|
2319
2368
|
return {
|
|
2320
|
-
off
|
|
2369
|
+
off() {
|
|
2321
2370
|
inputListener.off();
|
|
2322
2371
|
compositionStartListener.off();
|
|
2323
2372
|
compositionEndListener.off();
|
|
2324
2373
|
},
|
|
2374
|
+
emit(details, useDispatchToEmit) {
|
|
2375
|
+
inputListener.emit(details, useDispatchToEmit);
|
|
2376
|
+
},
|
|
2325
2377
|
};
|
|
2326
2378
|
}
|
|
2327
2379
|
onDoubleClick(...args) {
|
|
@@ -2404,28 +2456,56 @@ define((function () { 'use strict';
|
|
|
2404
2456
|
/**
|
|
2405
2457
|
* 阻止事件的默认行为发生,并阻止事件传播
|
|
2406
2458
|
*/
|
|
2407
|
-
const stopEvent = (event) => {
|
|
2408
|
-
|
|
2459
|
+
const stopEvent = (event, onlyStopPropagation) => {
|
|
2460
|
+
if (typeof onlyStopPropagation === "boolean" && onlyStopPropagation) {
|
|
2461
|
+
// 停止事件的传播,阻止它继续向更上层的元素冒泡,事件将不会再传播给其他的元素
|
|
2462
|
+
event?.stopPropagation();
|
|
2463
|
+
// 阻止事件传播,并且还能阻止元素上的其他事件处理程序被触发
|
|
2464
|
+
event?.stopImmediatePropagation();
|
|
2465
|
+
return;
|
|
2466
|
+
}
|
|
2467
|
+
// 阻止事件的默认行为发生。例如,当点击一个链接时,浏览器会默认打开链接的URL,或者在输入框内输入文字
|
|
2409
2468
|
event?.preventDefault();
|
|
2410
|
-
/* 停止事件的传播,阻止它继续向更上层的元素冒泡,事件将不会再传播给其他的元素 */
|
|
2411
|
-
event?.stopPropagation();
|
|
2412
|
-
/* 阻止事件传播,并且还能阻止元素上的其他事件处理程序被触发 */
|
|
2413
|
-
event?.stopImmediatePropagation();
|
|
2414
2469
|
return false;
|
|
2415
2470
|
};
|
|
2416
|
-
if (args
|
|
2417
|
-
|
|
2418
|
-
|
|
2471
|
+
if (args[0] instanceof Event) {
|
|
2472
|
+
// 直接阻止事件
|
|
2473
|
+
const onlyStopPropagation = args[1];
|
|
2474
|
+
return stopEvent(args[0], onlyStopPropagation);
|
|
2419
2475
|
}
|
|
2420
2476
|
else {
|
|
2421
2477
|
const $el = args[0];
|
|
2422
2478
|
let eventNameList = args[1];
|
|
2423
|
-
|
|
2424
|
-
|
|
2479
|
+
let selector = void 0;
|
|
2480
|
+
let capture = false;
|
|
2481
|
+
let onlyStopPropagation = false;
|
|
2482
|
+
// 添加对应的事件来阻止触发
|
|
2425
2483
|
if (typeof eventNameList === "string") {
|
|
2426
2484
|
eventNameList = [eventNameList];
|
|
2427
2485
|
}
|
|
2428
|
-
|
|
2486
|
+
let option = void 0;
|
|
2487
|
+
if (typeof args[2] === "string" || Array.isArray(args[2])) {
|
|
2488
|
+
// selector
|
|
2489
|
+
selector = args[2];
|
|
2490
|
+
if (typeof args[3] === "object" && args[3] != null) {
|
|
2491
|
+
option = args[3];
|
|
2492
|
+
}
|
|
2493
|
+
}
|
|
2494
|
+
else if (typeof args[2] === "object" && args[2] != null && !Array.isArray(args[2])) {
|
|
2495
|
+
// option
|
|
2496
|
+
option = args[2];
|
|
2497
|
+
}
|
|
2498
|
+
else {
|
|
2499
|
+
throw new TypeError("Invalid argument");
|
|
2500
|
+
}
|
|
2501
|
+
if (option) {
|
|
2502
|
+
capture = Boolean(option.capture);
|
|
2503
|
+
onlyStopPropagation = Boolean(option.onlyStopPropagation);
|
|
2504
|
+
}
|
|
2505
|
+
const listener = this.on($el, eventNameList, selector, (evt) => {
|
|
2506
|
+
return stopEvent(evt, onlyStopPropagation);
|
|
2507
|
+
}, { capture: capture });
|
|
2508
|
+
return listener;
|
|
2429
2509
|
}
|
|
2430
2510
|
}
|
|
2431
2511
|
}
|