Deaktivieren Sie vorübergehend alle derzeit aktiven jQuery-Ereignishandler
Ich mache eineTD
Element der Tabelle mit Doppelklick editierbar:
$(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;
}
Wenn ich jedoch auf den Text innerhalb des bearbeitbaren Div doppelklicke, breitet sich das Doppelklick-Ereignis auf das übergeordnete TD aus und verursacht unerwünschte Konsequenzen. Es gibt auch andere Veranstaltungen (select
, mousedown
, etc) Ich möchte verhindern, dass ich einen Stummel für jeden von ihnen schreibe.
Gibt es eine Möglichkeit, alle derzeit aktiven jQuery-Ereignishandler zu deaktivieren und anschließend zu aktivieren? Oder hören Sie irgendwie auf, alle Ereignisse von der bearbeitbaren Div zu ihren Eltern zu übertragen?