如果浏览器原生事件不满足需求,可以自行扩展。
我们提供了一个 Yox.dom.specialEvents
特殊事件集,绑定事件时,会优先从特殊事件集读取,正因为如此,我们改进了 input
事件,当中文输入法正在输入时,不会触发 input
事件。
通常来说,大部分人都有去实现 tap
事件的需求,下面给一个简单的例子(仅用于演示,不要用于产品环境...):
Yox.dom.specialEvents.tap = {
on: function (element, listener) {
Yox.dom.on(
element,
isMobile ? 'touchstart' : 'click',
listener
);
},
off: function (element, listener) {
Yox.dom.off(
element,
isMobile ? 'touchstart' : 'click',
listener
);
}
};
接下来,我们就可以用 tap
事件了。
<button on-tap="submit()">
Submit
</button>