import { Directive } from 'nefbl' import xhtml from '@hai2007/browser/xhtml' /** * [可以使用的修饰符] * .prevent 阻止默认事件 * .stop 阻止冒泡 * .once 只执行一次 */ @Directive({ selector: "ui-on" }) export default class { $inserted(el, binding) { let types = binding.type.split('.'), modifier = { "prevent": false, "stop": false, "once": false }, callback = function (event) { if (modifier.stop) xhtml.stopPropagation(event) if (modifier.prevent) xhtml.preventDefault(event) binding.value.apply(binding.target, [event]) if (modifier.once) { xhtml.unbind(el, types[0], callback) } } for (let i = 1; i < types.length; i++) { modifier[types[i]] = true } xhtml.bind(el, types[0], callback) } }