ph-utils 0.1.0 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
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",