Glennsのアイデアに基づいて、非表示/表示イベントトリガーをCatalintから変更しました。私の問題は、モジュール式のアプリケーションがあることでした。divの親を表示するモジュールと非表示にするモジュールを切り替えます。次に、モジュールを非表示にして別のモジュールを表示すると、彼の方法では、モジュールを切り替えるときに目に見える遅延が発生します。私は時々、このイベントをライトする必要があるだけで、いくつかの特別な子供たちです。そこで、「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);
},
助けが欲しい