增加强大的自定义事件模块