नहीं कठिन पहले से ही jQuery के बाद से ऐसा करने के लिए अपने सभी ईवेंट हैंडलर को तत्व पर data()
के रूप में स्टोर करता है। आप .data().events
के माध्यम से इस ऑब्जेक्ट को (और संशोधित) प्राप्त कर सकते हैं।
इस पेज के शीर्ष बाईं ओर स्थित "StackExchange" ड्रॉपडाउन अक्षम करने का अधिकार अब आपके कंसोल में$("#portalLink a").data().events.click = null
की कोशिश करो।
अब आप आसानी से साथ संचालकों के लिए एक संदर्भ बचा सकते हैं:
events.click = events._click;
events._click = null;
ध्यान दें कि यह घटनाओं के माध्यम से बंधे हुए हैं कि अक्षम नहीं करेंगे:
events._click = events.click;
events.click = null;
और फिर उन्हें का उपयोग करके बहाल .delegate()
या .live()
, क्योंकि वे ईवेंट बबलिंग/प्रचार द्वारा काम करते हैं। उन को अक्षम करने के साथ ही, बस एक नया हैंडलर बाँध कि पूर्वज तत्वों को ब्लॉक प्रचार:
events._click = events.click;
events.click = null;
// Block .live() and .delegate()
$("#el").click(function (e) {
e.stopPropagation();
});
तुम भी इस अवरोधक समारोह निकल की जरूरत नहीं है जब यह, फिर संचालकों को सक्षम करने के बाद से events.click = events._click
को पार कर जाएगी समय आ गया है कार्य आप बस पुराने पुराने हैंडलरों के साथ बंधे हैं।
स्रोत
2011-01-04 13:36:34
आप अपने दृष्टिकोण पर पुनर्विचार करने के लिए कर सकते हैं - नहीं काम करने के लिए यदि आप एक बटन चाहते हैं इसे अक्षम करें। यह उपयोगकर्ता को स्पष्ट रूप से झुकाता है कि बटन अक्षम है। यह डिफ़ॉल्ट व्यवहार के आसपास काम करने से कहीं ज्यादा स्वच्छ, सरल और अधिक संगत है। आप बटन को अक्षम करने से बचना क्यों चाहते हैं? –
क्योंकि, AFAIK, अक्षम बटन को स्टाइल नहीं किया जा सकता है। – Ovesh