2010-01-29 12 views
7

Próbuję użyć okna dialogowego jQuery jako ekranu ładowania dla ajax. Mam do tej pory bardzo dobrą pracę, ale chciałbym, aby ekran ładowania nie był zamykany. Wydaje się jednak, że okno dialogowe interfejsu użytkownika nie ma opcji "zamykania" jako opcji?Okno dialogowe jQuery UI - jak go nie można zamknąć?

Jak to zrobić, że nie można zamknąć? Próbowałem ustawić closeText jako puste, ale to nic nie dało. Małe "X" nadal pokazuje się w prawym górnym rogu.

Czy uważasz, że zamykanie nie powinno być opcją dla widżetu okna dialogowego?

Dzięki

Odpowiedz

7

Ying, po prostu przekazać funkcję zwrotną do beforeclose:

$("#loading").dialog({ 
    beforeclose: function(){ return false } 
    // other options here 
}); 
+0

rację, przepraszam. Właśnie to zasugerowałbym, gdybyś sam nie znalazł tej części. Cieszę się, że to działało dla ciebie! Pamiętaj, aby oznaczyć odpowiedź jako zaakceptowaną (kliknij szary czek). Oboje otrzymujemy punkty rep i pomaga przyszłym ludziom z tym samym problemem wiedzieć, jakie rozwiązanie działa dla Ciebie. Witamy w StackOverflow! –

+0

Ups, znalazłem problem z tym rozwiązaniem. Kiedy zadzwonię do $ ("# loading"). Dialog ("zamknij") teraz nic nie robi. Potrzebowałem tego do pracy, więc postanowiłem ukryć "X" przez css. – Ying

6

Doug, dzięki za szybką odpowiedź. To wyłączało działanie w pobliżu. Jednak nie ukrył "X" w prawym górnym rogu. Skończyło się na użyciu css do ukrycia "X".

+2

Powinieneś także rozważyć ustawienie closeOnEscape na false, '$ (" .selector ") .dialog ({closeOnEscape: false});' przy inicjalizacji lub '$ (" .selector ") .dialog (" opcja "," closeOnEscape ", false); później ustawić ją na false –

1

Jak mam o nim dzięki Ying i Doug

Klasa:

.myDialog .ui-icon{ 
    display:none !important; 
} 

Jquery:

$(".ajaxloader").dialog({ 
     modal:true, 
     resizable:false, 
     dialogClass:'myDialog' 
    }); 
+0

Dzięki, to się udało. –

+0

To również ukrywa ikony w oknie dialogowym. Selektor powinien być bardziej konkretny, jak sądzę. –

1

myślę Ying jest na dobrej drodze, ale okazuje się, że .classForMyDialog (zakładając, że jest to div z zawartość okna dialogowego) nie ma ikony jako dziecka, więc nie działała.

miałem sukces:

$("#myDialogDivID").parent().find(".ui-dialog-titlebar-close").hide() 

Rodzic wybiera kopertę dialogowe div i wtedy możemy znaleźć i ukryć ikonę zamykania.

ja również skorzystać z tej okazji, aby podświetlić komentarz ustawić:

closeOnEscape: false 
Powiązane problemy