Ostatnio bawiąc się jQuery UI korzystałem duużo z ui.dialog
W moim dorastającym projekcie (może kiedyś więcej opowiem – to nie EL, Glassy Orange Board, ani Celestes
) generuję okienka dynamicznie, czyli np:
$("<div/>").html("Hello world.").dialog({
title: "Hello!"
});
I tak mogę sobie bez nie potrzebnego “appendowania” wyświetlić UI.Dialog
Tak stworzone okienka zamykałem brutalnie: remove(), ponieważ dialog(“destroy”), jak i dialog(“close”) zostawiał śmiecie. Chciałem jednak, aby zamykanie okienka było animowane (parametry show i hide w funkcji dialog).
Postanowiłem więc napisać stworzyć prostą modyfikację funkcji destroy. Niestety nie udało mi się tak jej napisać, aby można było z niej korzystać bez podmieniania linijek w ui.dialog.js.
Tak więc oto zmodyfikowane “destroy”, które trzeba zamienić w linijkach ~150 – 165:
/*
* jQuery UI Dialog "destroy" function modification.
* Author: Informatic <infdevblog.wordpress.com>
* Lines: ~150 - 165
* ---
* Now dialog("destroy") animates the "hide effect"
of the dialog, and doesn't appends original element to body.
Useable while generating dialogs dynamicaly.
* ---
* Do with it what you want... But when you use it,
tell me about that if you can :]
*/
destroy: function() {
var th = this;
(th.overlay && th.overlay.destroy());
this.uiDialog.hide(this.options.hide, {}, "slow", function() {
th.uiDialog.remove();
});
}
Regards.
Inf.

Najnowsze komentarze