Glenns fikrine dayanarak Catalint'ten gizle / göster olay tetikleyicisini değiştirdim. Benim sorunum modüler bir uygulama olmasıydı. Div ebeveynlerini gösteren ve gizleyen modüller arasında geçiş yapıyorum. Sonra bir modülü gizlediğimde ve başka bir modül gösterdiğimde, onun yöntemi ile modüller arasında geçiş yaptığımda görünür bir gecikme var. Bazen bu olayı ve bazı özel çocuklarda aydınlatmaya ihtiyacım var. Bu yüzden sadece "displayObserver" sınıfına sahip çocukları bildirmeye karar verdim
$.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;
}
});
Sonra bir çocuk "show" veya "hide" olayını dinlemek istediğinde, ona "displayObserver" sınıfını eklemem gerekir ve devam etmek istemediğinde onu sınıftan kaldırırım
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);
},
Yardım isterim