UNPKG

@prettyy/ui

Version:

vue2 UI

29 lines (28 loc) 838 B
/** * 实例离开事件后绑定,确保在任何浏览器中都会调用after-leave * * @param {Vue} instance 实例. * @param {Function} callback 实例离开后的回调 * @param {Number} speed 动画事件 * @param {Boolean} once 限制回调函数调用一次 */ export default function (instance, callback, speed = 300, once = false) { if (!instance || !callback) throw new Error("instance & callback is required") let called = false const afterLeaveCallback = function () { if (called) return called = true if (callback) { callback.apply(null, arguments) } } if (once) { instance.$once("after-leave", afterLeaveCallback) } else { instance.$on("after-leave", afterLeaveCallback) } setTimeout(() => { afterLeaveCallback() }, speed + 100) }