Skip to content

Commit 33fc861

Browse files
committed
Update Directive definitions.
1 parent 396fd4b commit 33fc861

File tree

6 files changed

+32
-25
lines changed

6 files changed

+32
-25
lines changed

dist/vuejs-dialog.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/vuejs-dialog.min.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<meta charset="UTF-8">
55
<title>VueJs Plugin usage example</title>
66
<meta name="viewport" content="width=device-width, initial-scale=1.0">
7-
<link href="app.main.css?7c87c312af8a384dfcab" rel="stylesheet"></head>
7+
<link href="app.main.css?6ee72a18cc7847a5e545" rel="stylesheet"></head>
88
<body>
99
<div id="app"></div>
1010

@@ -21,5 +21,5 @@
2121
ga('send', 'pageview');
2222

2323
</script>
24-
<script type="text/javascript" src="app.main.js?7c87c312af8a384dfcab"></script></body>
24+
<script type="text/javascript" src="app.main.js?6ee72a18cc7847a5e545"></script></body>
2525
</html>

docs/vuejs-dialog.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/plugin/js/directives.js

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,18 @@
11
// Directives
22

3-
import {noop} from './utilities'
3+
import {noop, clickNode} from './utilities'
44

55

66
let Directives = function (Vue) {
7-
this.Vue = Vue
8-
this.confirmDefinition = this.defineConfirm()
9-
this.alertDefinition = this.defineAlert()
7+
Object.defineProperties(this, {
8+
Vue: {get: () => Vue},
9+
confirmDefinition: {
10+
get: this.defineConfirm
11+
},
12+
alertDefinition: {
13+
get: this.defineAlert
14+
}
15+
})
1016
}
1117

1218
Directives.prototype.defineConfirm = function () {
@@ -29,23 +35,12 @@ Directives.prototype.defineConfirm = function () {
2935
return binding.value.ok
3036
} else {
3137
return () => {
38+
// Unbind to allow original event
3239
el.removeEventListener('click', el.VuejsDialog.clickHandler, true)
33-
34-
_this.Vue.nextTick(() => {
35-
(function (node) {
36-
if (document.createEvent) {
37-
let evt = document.createEvent('MouseEvents');
38-
evt.initEvent('click', true, false);
39-
node.dispatchEvent(evt);
40-
} else if (document.createEventObject) {
41-
node.fireEvent('onclick');
42-
} else if (typeof node.onclick === 'function') {
43-
node.onclick();
44-
}
45-
})(el)
46-
47-
el.addEventListener('click', el.VuejsDialog.clickHandler, true)
48-
})
40+
// Trigger original event
41+
clickNode(el)
42+
// Re-bind listener
43+
el.addEventListener('click', el.VuejsDialog.clickHandler, true)
4944
}
5045
}
5146
})()

src/plugin/js/utilities.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,16 @@ export const cloneObj = function (obj) {
88

99
export const mergeObjs = function () {
1010
return Object.assign(...(Object.values(arguments).map(cloneObj)))
11+
}
12+
13+
export const clickNode = function (node) {
14+
if (document.createEvent) {
15+
let evt = document.createEvent('MouseEvents');
16+
evt.initEvent('click', true, false);
17+
node.dispatchEvent(evt);
18+
} else if (document.createEventObject) {
19+
node.fireEvent('onclick');
20+
} else if (typeof node.onclick === 'function') {
21+
node.onclick();
22+
}
1123
}

0 commit comments

Comments
 (0)