press-ui
Version:
简单、易用的跨端组件库,兼容 Vue2 和 Vue3,同时支持 uni-app和普通 Vue 项目
55 lines (42 loc) • 1.14 kB
JavaScript
import { SUPPORT_PASSIVE } from '../utils/support-passive';
import { isNotInUni } from '../utils/utils';
import { IS_SERVER } from '../utils/validator';
export function on(target, event, handler, passive = false) {
if (!IS_SERVER) {
target.addEventListener(event, handler, SUPPORT_PASSIVE ? {
capture: false,
passive,
} : false);
}
}
export function off(target, event, handler) {
if (!IS_SERVER) {
target.removeEventListener(event, handler);
}
}
export function stopPropagation(event) {
event.stopPropagation();
}
export function preventDefault(event, isStopPropagation = false) {
if (typeof event.cancelable !== 'boolean' || event.cancelable) {
event.preventDefault();
}
if (isStopPropagation) {
stopPropagation(event);
}
}
export function getEventValue(event) {
return getEventDetail(event).value || '';
}
export function getEventDetail(event) {
// #ifdef H5
if (isNotInUni()) {
return {
value: event?.target?.value || '',
scrollTop: event?.target?.scrollTop,
scrollHeight: event?.target?.scrollHeight,
};
}
// #endif
return event.detail;
}