4

一个奇特的问题。

该脚本在“mousedown”上执行某些操作,然后在任一事件“keypress”、“focusout”、“keyup”上执行。

问题是一旦其中一个事件被执行,我如何杀死剩下的两个事件。

我试过$(document).off(), $(this).off('focusout'),但没有任何效果。

有什么线索吗?

.on('mousedown', '.task-content', function() {
    // Make DIV Editable
})

.on('keypress', '.task-content', function (e) {
    if (e.which == 13 && !e.shiftKey) {
        // Update DIV content to DB
    }
})

.on('focusout', '.task-content', function() {
    // Update DIV content to DB
})

.on('keyup', '.task-content', function (e) {
    if (e.which == 27) {
    // Return DIV to previous state
  }
})
4

1 回答 1

1

您的代码运行良好,也许您可​​能会指出错误的selector.

$('.task-content').on('keypress', function (e) {
    if (e.which == 13 && !e.shiftKey) {
        // Update DIV content to DB
        alert("key press");
        $(this).off('focusout');
    }
})

$('.task-content').on('focusout', function () {
    // Update DIV content to DB
    alert("focus out ");
})

检查这个JSFiddle

于 2013-06-20T14:11:06.567 回答