मैं डबल क्लिक पर संपादन योग्य तालिका का एक TD
तत्व बनाने हूँ:अस्थायी रूप से सभी वर्तमान में सक्रिय jQuery ईवेंट हैंडलर्स को निष्क्रिय
$(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;
}
लेकिन जब मैं दोगुना संपादन योग्य div के अंदर का पाठ पर क्लिक करें, डबल क्लिक करें घटना के लिए प्रसारित माता-पिता टीडी अवांछित परिणाम पैदा कर रहा है। अन्य घटनाएं भी हैं (select
, mousedown
, आदि) मैं रोकना चाहता हूं, इसलिए उनमें से प्रत्येक के लिए एक स्टब लिखना मेरे लिए अच्छा नहीं लग रहा है।
सभी वर्तमान में सक्रिय jQuery ईवेंट हैंडलर्स को निष्क्रिय और उन्हें बाद में सक्षम करने के लिए कोई तरीका है? या किसी भी तरह से संपादन योग्य div से अपने माता-पिता को सभी घटनाओं का प्रचार करना बंद कर दें?
देखें यदि 'td' के माता-पिता में से कोई भी कुछ हैंडलर भी है? क्या मैंने उनमें से प्रत्येक के लिए एक स्टब भी बनाया है? – warvariuc
@warwaruk: कोई ज़रूरत नहीं, 'झूठी' प्रचार रोकता है। –
मेरे पास '