重构事件回调