Jquery禁用mousedown事件而不会丢失与事件

时间:2017-08-30 15:54:32

标签: javascript jquery events

我尝试禁用元素的mousedown事件,然后启用它而不重新定义与事件相关的函数。 当我$(this).off(mousedownEvent)时,相关事件将丢失,我不想使用$(this).on(mousedownEvent, function())启用它。 有办法吗?

2 个答案:

答案 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);