我尝试禁用元素的mousedown事件,然后启用它而不重新定义与事件相关的函数。
当我$(this).off(mousedownEvent)
时,相关事件将丢失,我不想使用$(this).on(mousedownEvent, function())
启用它。
有办法吗?
答案 0 :(得分:3)
你不能只使用外部功能吗?
function doStuffOnMouseDown(evt) {
console.log('stuff happens here');
}
/* ENABLE */
$(this).on('mousedown', doStuffOnMouseDown);
/* DISABLE */
$(this).off('mousedown', doStuffOnMouseDown);
/* RE-ENABLE */
$(this).on('mousedown', doStuffOnMouseDown); // no suprise, it's just the same ?
这几乎是添加和删除事件而无需重新定义整个函数体的方法
答案 1 :(得分:0)
我认为创建函数的最简单方法是引用这样的函数:
function myMouseEvent() {
// Do some stuff
}
然后,您只需将函数的引用传递给方法,如下所示:
$(this).off('mousedown', myMouseEvent);
$(this).on('mousedown', myMouseEvent);