本框架内置组件的事件基本上都是jQuery自定义事件。
监听事件
$(selector).on('Event name', function(e) {
//do something...
})
触发事件
$(selector).trigger('Event name')
| 事件名称 | 中文说明 | 描述 |
|---|---|---|
| bjui.initUI | 框架初始化事件 | 监听该事件,可以为指定的DOM初始化框架组件及插件,例如:本框架监听该事件用于在文档加载完成或ajax加载完成时,初始化框架及插件 |
| bjui.beforeInitUI | 框架初始化前事件 | 监听该事件,可以在框架初始化前进行相关操作。例如:本框架的任一容器DOM如果添加了属性['data-noinit="true"],该容器内的元素都不会被初始化,处理这个流程就监听了本件事。 |
| bjui.afterInitUI | 框架初始化后事件 | 监听该事件,可以在框架初始化后进行相关操作,示例同上。 |
| bjui.ajaxStatus | ajax请求状态事件 | 框架内部事件。本事件用于在ajax请求过程中(ajaxStart - > ajaxStop),显示/隐藏 框架的Mask loading效果。 |
| bjui.resizeGrid | 窗口缩放事件 | 监听该事件,可在浏览器窗口或dialog窗口缩放时进行相关操作。 |
| bjui.beforeAjaxLoad | ajax载入前事件 | 监听该事件,可在使用ajaxUrl方法 (navtab/dialog均用此方法加载子页片内容) 前进行相关操作,例如:本框架监听该事件用于在重载入子页片前释放在body中生成的selectpicker插件资源。 |
| bjui.beforeLoadNavtab | BJUI.eventType.afterLoadNavtab | 载入navtab内容后事件 | 监听该事件,可以在载入navtab内容后进行相关操作。 |
| bjui.destroyPanel | 1.7.4+navtab或dialog重新加载事件 | dom添加[data-bj-panel-dom]属性并监听该事件,可在navtab/dialog关闭前触发,可用于页面关闭前处理操作,如清除控制器等 |
| 其他 | 1.7.4+vue3的卸载事件触发 | 在挂载vue3的dom上添加[data-bj-vue-dom]属性(可在 BJUI.pluginConfig.unmountAttr 配置),在触发bjui.destroyPanel事件同时并触发vue3卸载,并触发onBeforeUnmount/onUnmounted监听 |
可以多次监听某一事件,jQuery会依次处理,本例触发bjui.initUI事件时会先触发框架的监听事件(
bjui-plugins.js: 为文本框添加Class[form-control]),再触发自定义的监听事件(红色边框)。
事件示例: 创建div容器
示例完整代码:
<script type="text/javascript">
var $doc_div = $('<div class="doc-eventbox" style="display:inline-block; margin-left:10px;"><input type="text"></div>')
$doc_div.on('bjui.initUI', function() {
$(this).find('input').css('border-color','red')
})
$('a.doc-event-1').click(function() {
$doc_div.insertAfter('a.doc-event-2')
$('a.doc-event-2').removeClass('hide')
$(this).hide()
})
$('a.doc-event-2').click(function() {
$(this).hide()
$doc_div.trigger('bjui.initUI')
})
</script>
创建div容器