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