@whitesev/domutils 1.9.6 → 1.9.9
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 +46 -80
- 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 +46 -80
- 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 +46 -80
- 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 +46 -80
- 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 +46 -80
- 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 +46 -80
- 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 +14 -27
- package/dist/types/src/types/DOMUtilsEvent.d.ts +6 -1
- package/package.json +6 -6
- package/src/ElementEvent.ts +62 -88
- package/src/Utils.ts +0 -1
- package/src/types/DOMUtilsEvent.d.ts +6 -1
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.9";
|
|
4
4
|
|
|
5
5
|
class WindowApi {
|
|
6
6
|
/** 默认的配置 */
|
|
@@ -537,7 +537,6 @@ define((function () { 'use strict';
|
|
|
537
537
|
"is",
|
|
538
538
|
"jquery",
|
|
539
539
|
"keydown",
|
|
540
|
-
"keypress",
|
|
541
540
|
"keyup",
|
|
542
541
|
"last",
|
|
543
542
|
"load",
|
|
@@ -590,10 +589,7 @@ define((function () { 'use strict';
|
|
|
590
589
|
"slideDown",
|
|
591
590
|
"slideToggle",
|
|
592
591
|
"slideUp",
|
|
593
|
-
"sort",
|
|
594
|
-
"splice",
|
|
595
592
|
"text",
|
|
596
|
-
"toArray",
|
|
597
593
|
"toggle",
|
|
598
594
|
"toggleClass",
|
|
599
595
|
"trigger",
|
|
@@ -1627,16 +1623,6 @@ define((function () { 'use strict';
|
|
|
1627
1623
|
// 这是存在selector的情况
|
|
1628
1624
|
listenerOption = getOption(args, 4, listenerOption);
|
|
1629
1625
|
}
|
|
1630
|
-
// 是否移除所有事件
|
|
1631
|
-
let isRemoveAll = false;
|
|
1632
|
-
if (args.length === 2) {
|
|
1633
|
-
// 目标函数、事件名
|
|
1634
|
-
isRemoveAll = true;
|
|
1635
|
-
}
|
|
1636
|
-
else if ((args.length === 3 && typeof args[2] === "string") || Array.isArray(args[2])) {
|
|
1637
|
-
// 目标函数、事件名、子元素选择器
|
|
1638
|
-
isRemoveAll = true;
|
|
1639
|
-
}
|
|
1640
1626
|
if (args.length === 5 && typeof args[4] === "function" && typeof filter !== "function") {
|
|
1641
1627
|
// 目标函数、事件名、回调函数、事件配置、过滤函数
|
|
1642
1628
|
filter = option;
|
|
@@ -1666,7 +1652,7 @@ define((function () { 'use strict';
|
|
|
1666
1652
|
// 事件的配置项不同
|
|
1667
1653
|
flag = false;
|
|
1668
1654
|
}
|
|
1669
|
-
if (flag
|
|
1655
|
+
if (flag) {
|
|
1670
1656
|
$elItem.removeEventListener(eventName, handler.handlerCallBack, handler.option);
|
|
1671
1657
|
const findIndex = handlers.findIndex((item) => item === handler);
|
|
1672
1658
|
if (findIndex !== -1) {
|
|
@@ -1859,35 +1845,43 @@ define((function () { 'use strict';
|
|
|
1859
1845
|
else {
|
|
1860
1846
|
$elList.push(element);
|
|
1861
1847
|
}
|
|
1848
|
+
/**
|
|
1849
|
+
* 主动添加属性
|
|
1850
|
+
*/
|
|
1851
|
+
const addExtraProp = (event, obj) => {
|
|
1852
|
+
if (event instanceof Event && typeof obj === "object" && obj != null && !Array.isArray(obj)) {
|
|
1853
|
+
const detailKeys = Object.keys(obj);
|
|
1854
|
+
detailKeys.forEach((keyName) => {
|
|
1855
|
+
const value = Reflect.get(obj, keyName);
|
|
1856
|
+
// 在event上添加属性
|
|
1857
|
+
Reflect.set(event, keyName, value);
|
|
1858
|
+
});
|
|
1859
|
+
}
|
|
1860
|
+
};
|
|
1862
1861
|
let eventTypeList = [];
|
|
1862
|
+
/**
|
|
1863
|
+
* 主动传递的事件
|
|
1864
|
+
*/
|
|
1865
|
+
let __event__ = null;
|
|
1863
1866
|
if (Array.isArray(eventType)) {
|
|
1864
1867
|
eventTypeList = eventType.filter((it) => typeof it === "string" && it.trim() !== "");
|
|
1865
1868
|
}
|
|
1866
1869
|
else if (typeof eventType === "string") {
|
|
1867
1870
|
eventTypeList = eventType.split(" ");
|
|
1868
1871
|
}
|
|
1872
|
+
else if (eventType instanceof Event) {
|
|
1873
|
+
__event__ = eventType;
|
|
1874
|
+
addExtraProp(__event__, extraDetails);
|
|
1875
|
+
}
|
|
1869
1876
|
$elList.forEach(($elItem) => {
|
|
1870
1877
|
/* 获取对象上的事件 */
|
|
1871
1878
|
const elementEvents = Reflect.get($elItem, GlobalData.domEventSymbol) || {};
|
|
1872
|
-
|
|
1873
|
-
|
|
1874
|
-
|
|
1875
|
-
|
|
1876
|
-
}
|
|
1877
|
-
else {
|
|
1878
|
-
// 构造事件
|
|
1879
|
-
event = new Event(eventTypeItem);
|
|
1880
|
-
if (typeof extraDetails === "object" && extraDetails != null) {
|
|
1881
|
-
const detailKeys = Object.keys(extraDetails);
|
|
1882
|
-
detailKeys.forEach((keyName) => {
|
|
1883
|
-
const value = Reflect.get(extraDetails, keyName);
|
|
1884
|
-
// 在event上添加属性
|
|
1885
|
-
Reflect.set(event, keyName, value);
|
|
1886
|
-
});
|
|
1887
|
-
}
|
|
1888
|
-
}
|
|
1879
|
+
/**
|
|
1880
|
+
* 触发事件
|
|
1881
|
+
*/
|
|
1882
|
+
const dispatchEvent = (event, eventTypeItem) => {
|
|
1889
1883
|
if (useDispatchToTriggerEvent == false && eventTypeItem in elementEvents) {
|
|
1890
|
-
//
|
|
1884
|
+
// 直接调用.on监听的事件
|
|
1891
1885
|
elementEvents[eventTypeItem].forEach((eventsItem) => {
|
|
1892
1886
|
eventsItem.handlerCallBack(event);
|
|
1893
1887
|
});
|
|
@@ -1895,7 +1889,21 @@ define((function () { 'use strict';
|
|
|
1895
1889
|
else {
|
|
1896
1890
|
$elItem.dispatchEvent(event);
|
|
1897
1891
|
}
|
|
1898
|
-
}
|
|
1892
|
+
};
|
|
1893
|
+
if (__event__) {
|
|
1894
|
+
// 使用主动传递的事件直接触发
|
|
1895
|
+
const event = __event__;
|
|
1896
|
+
const eventTypeItem = event.type;
|
|
1897
|
+
dispatchEvent(event, eventTypeItem);
|
|
1898
|
+
}
|
|
1899
|
+
else {
|
|
1900
|
+
eventTypeList.forEach((eventTypeItem) => {
|
|
1901
|
+
// 构造事件
|
|
1902
|
+
const event = new Event(eventTypeItem);
|
|
1903
|
+
addExtraProp(event, extraDetails);
|
|
1904
|
+
dispatchEvent(event, eventTypeItem);
|
|
1905
|
+
});
|
|
1906
|
+
}
|
|
1899
1907
|
});
|
|
1900
1908
|
}
|
|
1901
1909
|
/**
|
|
@@ -2200,49 +2208,6 @@ define((function () { 'use strict';
|
|
|
2200
2208
|
}
|
|
2201
2209
|
return that.on(element, "keydown", null, handler, option);
|
|
2202
2210
|
}
|
|
2203
|
-
/**
|
|
2204
|
-
* 当按键按下时触发事件
|
|
2205
|
-
* keydown - > keypress - > keyup
|
|
2206
|
-
* @param element 目标
|
|
2207
|
-
* @param handler 事件处理函数
|
|
2208
|
-
* @param option 配置
|
|
2209
|
-
* @example
|
|
2210
|
-
* // 监听a.xx元素的按键按下
|
|
2211
|
-
* DOMUtils.keypress(document.querySelector("a.xx"),()=>{
|
|
2212
|
-
* console.log("按键按下");
|
|
2213
|
-
* })
|
|
2214
|
-
* DOMUtils.keypress("a.xx",()=>{
|
|
2215
|
-
* console.log("按键按下");
|
|
2216
|
-
* })
|
|
2217
|
-
*/
|
|
2218
|
-
onKeypress(element, handler, option) {
|
|
2219
|
-
const that = this;
|
|
2220
|
-
if (element == null) {
|
|
2221
|
-
return;
|
|
2222
|
-
}
|
|
2223
|
-
if (typeof element === "string") {
|
|
2224
|
-
element = that.selectorAll(element);
|
|
2225
|
-
}
|
|
2226
|
-
if (CommonUtils.isNodeList(element)) {
|
|
2227
|
-
// 设置
|
|
2228
|
-
const listenerList = [];
|
|
2229
|
-
element.forEach(($ele) => {
|
|
2230
|
-
const listener = that.onKeypress($ele, handler, option);
|
|
2231
|
-
listenerList.push(listener);
|
|
2232
|
-
});
|
|
2233
|
-
return {
|
|
2234
|
-
off() {
|
|
2235
|
-
listenerList.forEach((listener) => {
|
|
2236
|
-
if (!listener) {
|
|
2237
|
-
return;
|
|
2238
|
-
}
|
|
2239
|
-
listener.off();
|
|
2240
|
-
});
|
|
2241
|
-
},
|
|
2242
|
-
};
|
|
2243
|
-
}
|
|
2244
|
-
return that.on(element, "keypress", null, handler, option);
|
|
2245
|
-
}
|
|
2246
2211
|
/**
|
|
2247
2212
|
* 监听某个元素键盘按键事件或window全局按键事件
|
|
2248
2213
|
* 按下有值的键时触发,按下Ctrl\Alt\Shift\Meta是无值键。按下先触发keydown事件,再触发keypress事件。
|
|
@@ -2306,7 +2271,7 @@ define((function () { 'use strict';
|
|
|
2306
2271
|
搜索 170
|
|
2307
2272
|
收藏 171
|
|
2308
2273
|
**/
|
|
2309
|
-
onKeyboard(element, eventName = "
|
|
2274
|
+
onKeyboard(element, eventName = "keydown", handler, options) {
|
|
2310
2275
|
const that = this;
|
|
2311
2276
|
if (typeof element === "string") {
|
|
2312
2277
|
element = that.selectorAll(element);
|
|
@@ -2484,7 +2449,8 @@ define((function () { 'use strict';
|
|
|
2484
2449
|
eventNameList = [eventNameList];
|
|
2485
2450
|
}
|
|
2486
2451
|
let option = void 0;
|
|
2487
|
-
if (
|
|
2452
|
+
if (args.length === 2) ;
|
|
2453
|
+
else if (typeof args[2] === "string" || Array.isArray(args[2])) {
|
|
2488
2454
|
// selector
|
|
2489
2455
|
selector = args[2];
|
|
2490
2456
|
if (typeof args[3] === "object" && args[3] != null) {
|