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