मैंने ग्लेन के विचार के आधार पर कैटलिन से छिपाने / शो इवेंट ट्रिगर को बदल दिया। मेरी समस्या यह थी कि मेरे पास एक मॉड्यूलर आवेदन है। मैं divs माता-पिता को दिखाने और छुपाने वाले मॉड्यूल के बीच बदलता हूं। फिर जब मैं एक मॉड्यूल छिपाता हूं और दूसरा दिखाता हूं, तो उसकी विधि के साथ जब मैं मॉड्यूल के बीच बदलाव करता हूं तो मुझे एक देरी दिखाई देती है। मुझे केवल कभी-कभी इस घटना को जगाने की जरूरत है, और कुछ विशेष चिल्ड में। तो मैंने कक्षा "प्रदर्शनकारक" के साथ केवल बच्चों को सूचित करने का फैसला किया
$.each(["show", "hide", "toggleClass", "addClass", "removeClass"], function () {
var _oldFn = $.fn[this];
$.fn[this] = function () {
var hidden = this.find(".displayObserver:hidden").add(this.filter(":hidden"));
var visible = this.find(".displayObserver:visible").add(this.filter(":visible"));
var result = _oldFn.apply(this, arguments);
hidden.filter(":visible").each(function () {
$(this).triggerHandler("show");
});
visible.filter(":hidden").each(function () {
$(this).triggerHandler("hide");
});
return result;
}
});
फिर जब कोई बच्चा "शो" या "छुपाना" घटना के लिए सुनना चाहता है तो मुझे उसे "प्रदर्शनकारक" वर्ग जोड़ना होगा, और जब वह इसे जारी रखना नहीं चाहेगा, तो मैं उसे कक्षा से हटा दूंगा
bindDisplayEvent: function () {
$("#child1").addClass("displayObserver");
$("#child1").off("show", this.onParentShow);
$("#child1").on("show", this.onParentShow);
},
bindDisplayEvent: function () {
$("#child1").removeClass("displayObserver");
$("#child1").off("show", this.onParentShow);
},
मैं मदद की कामना करता हूं