Tymczasowo wyłącz wszystkie aktualnie aktywne programy obsługi zdarzeń jQuery

RobięTD element edytowalny tabeli po dwukrotnym kliknięciu:

$(document).on("dblclick", "#table>tbody>tr>td.cell", function(e) {
    if (e.which != 1 || e.shiftKey || e.altKey || e.ctrlKey)
        // need left button without keyboard modifiers
        return;
    reset_selection();
    var editor = document.createElement("div");
    editor.setAttribute("contenteditable", "true");
    editor.innerHTML = this.innerHTML;
    this.innerHTML = '';
    // this.style.padding = 0;
    this.appendChild(editor);
    $(document).on("*", stub);
    editor.onblur = function() {
        // this.parentNode.setAttribute("style", "");
        this.parentNode.innerHTML = this.innerHTML;
        sys.editor = null;
        $(document).off("*", stub);;
    };
    editor.focus();
});

function stub(e) {
    e.stopImmediatePropagation();
    return false;
}

Ale kiedy dwukrotnie klikam tekst wewnątrz edytowalnego div, zdarzenie podwójnego kliknięcia rozchodzi się do rodzica td powodując niepożądane konsekwencje. Istnieją również inne wydarzenia (select, mousedown, itp.) chcę zapobiec, więc pisanie kodu dla każdego z nich nie jest dla mnie przyjemne.

Czy istnieje sposób na wyłączenie wszystkich aktualnie aktywnych programów obsługi zdarzeń jQuery i włączenie ich później? Lub w jakiś sposób przestać propagować wszystkie zdarzenia z edytowalnego diva do swoich rodziców?

questionAnswers(2)

yourAnswerToTheQuestion