UNPKG

wsemi

Version:

A support package for web developer.

46 lines (37 loc) 988 B
import isIE from './isIE.mjs' /** * 前端DOM元素事件停止傳遞事件 * * Unit Test: {@link https://github.com/yuda-lyu/wsemi/blob/master/test/domCancelEvent.test.mjs Github} * @memberOf wsemi * @param {HTMLEvent} event 輸入event物件 * @example * need test in browser * * window.addEventListener('touchstart', (e) => { * domCancelEvent(e) * }) * */ function domCancelEvent(e) { //check if (!e) { return 'invalid event' } //check, 拖曳事件因拖曳自己會捲動螢幕, 會觸發不可取消事件, 故需偵測直接跳出 if (!e.cancelable) { return 'event is not cancelable' } //try, 有些情形preventDefault是passive無法呼叫 try { if (isIE()) { e.cancelBubble = true //IE11 } else { e.stopPropagation() } e.preventDefault() } catch (err) {} } export default domCancelEvent