mirror of https://github.com/ElemeFE/element
commit
10306ab821
|
@ -11,19 +11,24 @@ const clickoutsideContext = '@@clickoutsideContext';
|
||||||
export default {
|
export default {
|
||||||
bind(el, binding, vnode) {
|
bind(el, binding, vnode) {
|
||||||
const documentHandler = function(e) {
|
const documentHandler = function(e) {
|
||||||
if (vnode.context && !el.contains(e.target)) {
|
if (!vnode.context || el.contains(e.target)) return;
|
||||||
|
if (binding.expression) {
|
||||||
vnode.context[el[clickoutsideContext].methodName]();
|
vnode.context[el[clickoutsideContext].methodName]();
|
||||||
|
} else {
|
||||||
|
el[clickoutsideContext].bindingFn();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
el[clickoutsideContext] = {
|
el[clickoutsideContext] = {
|
||||||
documentHandler,
|
documentHandler,
|
||||||
methodName: binding.expression
|
methodName: binding.expression,
|
||||||
|
bindingFn: binding.value
|
||||||
};
|
};
|
||||||
document.addEventListener('click', documentHandler);
|
document.addEventListener('click', documentHandler);
|
||||||
},
|
},
|
||||||
|
|
||||||
update(el, binding) {
|
update(el, binding) {
|
||||||
el[clickoutsideContext].methodName = binding.expression;
|
el[clickoutsideContext].methodName = binding.expression;
|
||||||
|
el[clickoutsideContext].bindingFn = binding.value;
|
||||||
},
|
},
|
||||||
|
|
||||||
unbind(el) {
|
unbind(el) {
|
||||||
|
|
Loading…
Reference in New Issue