使用事件触发，而非重写自动保存函数