mdui
Version:
a CSS Framework based on material design
38 lines (37 loc) • 1.1 kB
JavaScript
import $ from 'mdui.jq/es/$';
import 'mdui.jq/es/methods/trigger';
/**
* 触发组件上的事件
* @param eventName 事件名
* @param componentName 组件名
* @param target 在该元素上触发事件
* @param instance 组件实例
* @param parameters 事件参数
*/
function componentEvent(eventName, componentName, target, instance, parameters) {
if (!parameters) {
parameters = {};
}
// @ts-ignore
parameters.inst = instance;
const fullEventName = `${eventName}.mdui.${componentName}`;
// jQuery 事件
// @ts-ignore
if (typeof jQuery !== 'undefined') {
// @ts-ignore
jQuery(target).trigger(fullEventName, parameters);
}
const $target = $(target);
// mdui.jq 事件
$target.trigger(fullEventName, parameters);
const eventParams = {
bubbles: true,
cancelable: true,
detail: parameters,
};
const eventObject = new CustomEvent(fullEventName, eventParams);
// @ts-ignore
eventObject._detail = parameters;
$target[0].dispatchEvent(eventObject);
}
export { componentEvent };