ฉันเปลี่ยนทริกเกอร์เหตุการณ์ซ่อน / แสดงจาก Catalint ตามแนวคิดของ Glenn ปัญหาของฉันคือฉันมีแอปพลิเคชันแบบแยกส่วน ฉันเปลี่ยนระหว่างโมดูลที่แสดงและซ่อนผู้ปกครอง divs จากนั้นเมื่อฉันซ่อนโมดูลและแสดงอีกโมดูลด้วยวิธีของเขาฉันมีความล่าช้าที่มองเห็นได้เมื่อฉันเปลี่ยนระหว่างโมดูล บางครั้งฉันต้องการทำให้เหตุการณ์นี้สว่างขึ้นและในเด็กพิเศษบางคน ดังนั้นฉันตัดสินใจที่จะแจ้งเตือนเฉพาะเด็กที่มีคลาส "displayObserver"
$.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;
}
});
จากนั้นเมื่อเด็กต้องการฟังเหตุการณ์ "แสดง" หรือ "ซ่อน" ฉันต้องเพิ่มคลาส "displayObserver" และเมื่อไม่ต้องการฟังต่อฉันจะลบชั้นเรียนออก
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);
},
ฉันต้องการความช่วยเหลือ