重构事件绑定