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