fix clickoutside bug in JSX render

pull/248/head
baiyaaaaa 2016-10-07 17:25:56 +08:00
parent db7eb0ea8d
commit de2cd1a8f2
1 changed files with 7 additions and 2 deletions

View File

@ -11,19 +11,24 @@ const clickoutsideContext = '@@clickoutsideContext';
export default {
bind(el, binding, vnode) {
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]();
} else {
el[clickoutsideContext].bindingFn();
}
};
el[clickoutsideContext] = {
documentHandler,
methodName: binding.expression
methodName: binding.expression,
bindingFn: binding.value
};
document.addEventListener('click', documentHandler);
},
update(el, binding) {
el[clickoutsideContext].methodName = binding.expression;
el[clickoutsideContext].bindingFn = binding.value;
},
unbind(el) {