Merge pull request #248 from baiyaaaaa/master

fix clickoutside bug in JSX render
pull/254/merge
杨奕 2016-10-07 17:46:13 +08:00 committed by GitHub
commit 10306ab821
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) {