ph-utils 0.1.0 → 0.1.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.
Files changed (3) hide show
  1. package/lib/dom.d.ts +33 -2
  2. package/lib/dom.js +86 -3
  3. package/package.json +1 -1
package/lib/dom.d.ts CHANGED
@@ -32,6 +32,37 @@ export declare function transform(element: HTMLElement, value: string): void;
32
32
  * @param {HTMLElement} element 添加事件的节点
33
33
  * @param {string} listener 事件名称
34
34
  * @param {function} event 事件处理函数
35
- * @param {boolean} once 是否是只运行一次的处理函数
35
+ * @param {boolean} onceOrConfig 是否是只运行一次的处理函数或者配置,其中 eventFlag 为 string,如果配置该项,则表明为委托事件
36
36
  */
37
- export declare function on(element: HTMLElement, listener: string, event: (e?: Event) => void, once?: boolean): void;
37
+ export declare function on(element: HTMLElement, listener: string, fn: (e: Event, target?: HTMLElement, flag?: string) => void, once?: boolean | {
38
+ once?: boolean;
39
+ eventFlag?: string;
40
+ }): void;
41
+ /**
42
+ * 设置或获取节点的 innerHTML 属性
43
+ * @param element
44
+ * @param htmlstr 可选,如果传递该参数,则表示设置;否则表示获取
45
+ * @returns
46
+ */
47
+ export declare function html(element: HTMLElement, htmlstr?: string): string;
48
+ /**
49
+ * 设置或获取节点的 textContent 属性
50
+ * @param element
51
+ * @param textstr 可选,如果传递该参数,则表示设置;否则表示获取
52
+ * @returns
53
+ */
54
+ export declare function text(element: HTMLElement, textstr?: string): string;
55
+ /**
56
+ * 节点列表遍历
57
+ * @param elems
58
+ * @param fn 遍历到节点时的回调,回调第一个参数为遍历到的节点,第2个参数为 index;如果回调函数返回 true,则会终止遍历(break)
59
+ */
60
+ export declare function iterate(elems: NodeList, fn: (el: HTMLElement, index: number) => any): void;
61
+ /**
62
+ * 设置或获取节点 data-* 属性
63
+ * @param elem
64
+ * @param key data- 后面跟随的值
65
+ * @param value 如果传递该值表示获取;否则表示设置
66
+ * @returns
67
+ */
68
+ export declare function attr(elem: HTMLElement, key: string, value?: string): string;
package/lib/dom.js CHANGED
@@ -54,8 +54,91 @@ export function transform(element, value) {
54
54
  * @param {HTMLElement} element 添加事件的节点
55
55
  * @param {string} listener 事件名称
56
56
  * @param {function} event 事件处理函数
57
- * @param {boolean} once 是否是只运行一次的处理函数
57
+ * @param {boolean} onceOrConfig 是否是只运行一次的处理函数或者配置,其中 eventFlag 为 string,如果配置该项,则表明为委托事件
58
58
  */
59
- export function on(element, listener, event, once = false) {
60
- element.addEventListener(listener, event, { once });
59
+ export function on(element, listener, fn, once = false) {
60
+ let eventExtra = {};
61
+ if (typeof once === 'boolean') {
62
+ eventExtra.once = once;
63
+ }
64
+ else {
65
+ eventExtra = once;
66
+ }
67
+ if (eventExtra.eventFlag != null) {
68
+ element.setAttribute(eventExtra.eventFlag, '__stop__');
69
+ element.addEventListener(listener, (e) => {
70
+ let target = e.target;
71
+ let flag = '';
72
+ do {
73
+ flag = target.getAttribute(eventExtra.eventFlag) || '';
74
+ if (flag === '') {
75
+ target = target.parentNode;
76
+ }
77
+ } while (flag === '');
78
+ if (flag !== '__stop__') {
79
+ fn(e, target, flag);
80
+ }
81
+ }, eventExtra);
82
+ }
83
+ else {
84
+ element.addEventListener(listener, fn, eventExtra);
85
+ }
86
+ }
87
+ /**
88
+ * 设置或获取节点的 innerHTML 属性
89
+ * @param element
90
+ * @param htmlstr 可选,如果传递该参数,则表示设置;否则表示获取
91
+ * @returns
92
+ */
93
+ export function html(element, htmlstr) {
94
+ if (htmlstr == null) {
95
+ return element.innerHTML;
96
+ }
97
+ else {
98
+ element.innerHTML = htmlstr;
99
+ return undefined;
100
+ }
101
+ }
102
+ /**
103
+ * 设置或获取节点的 textContent 属性
104
+ * @param element
105
+ * @param textstr 可选,如果传递该参数,则表示设置;否则表示获取
106
+ * @returns
107
+ */
108
+ export function text(element, textstr) {
109
+ if (textstr == null) {
110
+ return element.textContent;
111
+ }
112
+ else {
113
+ element.textContent = textstr;
114
+ return undefined;
115
+ }
116
+ }
117
+ /**
118
+ * 节点列表遍历
119
+ * @param elems
120
+ * @param fn 遍历到节点时的回调,回调第一个参数为遍历到的节点,第2个参数为 index;如果回调函数返回 true,则会终止遍历(break)
121
+ */
122
+ export function iterate(elems, fn) {
123
+ for (let i = 0, len = elems.length; i < len; i++) {
124
+ let r = fn(elems[i], i);
125
+ if (r === true) {
126
+ break;
127
+ }
128
+ }
129
+ }
130
+ /**
131
+ * 设置或获取节点 data-* 属性
132
+ * @param elem
133
+ * @param key data- 后面跟随的值
134
+ * @param value 如果传递该值表示获取;否则表示设置
135
+ * @returns
136
+ */
137
+ export function attr(elem, key, value) {
138
+ if (value != null) {
139
+ elem.setAttribute('data-' + key, value);
140
+ }
141
+ else {
142
+ return elem.getAttribute('data-' + key);
143
+ }
61
144
  }
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "module": "lib/index_m.js",
6
6
  "types": "lib/index.d.ts",
7
7
  "browser": "lib/index_m.js",
8
- "version": "0.1.0",
8
+ "version": "0.1.6",
9
9
  "repository": {
10
10
  "type": "git",
11
11
  "url": "git+https//gitee.com/towardly/ph.git",