Autor | Zpráva | ||
---|---|---|---|
Rellik Profil |
#1 · Zasláno: 19. 10. 2012, 21:29:43
Zdravím, právě řeším takovou věc: Na stránce mám dialogové okno, kde mám několik záložek, z nichž jedna je upload souboru. Dá se nějak zařídit aby po uploadu souboru a v podstatě po refreši stránky zůstalo toto okno otevřené?
$('#dialog').dialog({ autoOpen: false, // tady by to chtělo nějak přepínat - při normálním přístupu false ale po refreši by bylo true width: 900, height: 500, buttons: { "Zavřít": function() { $(this).dialog("close"); }, } }); V podstatě pokud je okno otevřené a dám refreš, tak aby zase zůstalo otevřené. Pokud není, tak jako by se nic nedělo. Dá se to nějak vyřešit? Díky za případné rady... :) |
||
Časová prodleva: 10 dní
|
|||
candiess Profil |
#2 · Zasláno: 29. 10. 2012, 10:36:27
Rellik:
„V podstatě pokud je okno otevřené a dám refreš, tak aby zase zůstalo otevřené.“ No toto bych řešil takto: Po kliknutí/zavolání dialogu se do url připíše hash (např: #openDialog) a do inicializace dialogu přidal podmínku testování, jestli se v hashi něco nachází. my_val = false; if(hash) { my_val = true; } $('#dialog').dialog({ autoOpen: my_val, // tady by to chtělo nějak přepínat - při normálním přístupu false ale po refreši by bylo true width: 900, ...... |
||
Rellik Profil |
#3 · Zasláno: 29. 10. 2012, 12:33:14
candiess:
Dík, ale bohužel to není tak jednoduché. Ono to reaguje kliknutí na prvek s nastaveným id, takže adresa se nemění ať tam přidám cokoliv. Celý script na otvírání toho dialogového okna je: // Prilohy $('#prilohy').dialog({ autoOpen: false, width: 550, height: 600, buttons: { "Zavřít": function() { $(this).dialog("close"); }, } }); // Přílohy Link $('#prilohy_lnk').click(function(){ $('#prilohy').dialog('open'); return false; }); <a href="#" id="prilohy_lnk">Přílohy</a> <div id="prilohy" title="Dostupné přílohy pro články"> Tento div se zobrazí po kliknutí. Ať do odkazu výše napíšu cokoliv, adresa se nemění... </div> |
||
candiess Profil |
#4 · Zasláno: 29. 10. 2012, 12:41:03
Rellik:
Teďka jsem si přečetl zadání znova a píšeš tam nco o záložkách, z níchž jedna je pro upload souboru. Mno když už to řešíš takto, tak roč i ten upload neprovedeš přes JQuery (ajax)?? Neproběhne ti žádný reload a tudíš nemusíš řešit otevírání dialogu :) A nebo druhá možnost, pokud to chápu správně klikáš na odkaz, který ti otevře dialog. Když klikáš tak přece ůžeš ovlivnit URL -> „<a href="#" id="prilohy_lnk">Přílohy</a> <div id="prilohy" title="Dostupné přílohy pro články"> Tento div se zobrazí po kliknutí. Ať do odkazu výše napíšu cokoliv, adresa se nemění... </div>“ A to sice, že href="#openDialog" a pak při reloadu zkontroluješ hash url a pak nastavíš. Pokud řešíš to, že je tam více těchto klikacích dialogů, můžeš do url přidávat hodnoty a to sice href="#openDialog=2" atd.. doufám, že jsem nějak užitečný :D |
||
Rellik Profil |
Ne jde měnit url. i když tam napíšu cokoliv, tak adresa se nezmění. Dokonce i když smažu ten křížek, nic to neovlivní. Pro lepší pochopení můžeš kouknout přímo na stránku kde to chci vyřešit: http://example.mmrspress.eu/ v patičce je odkaz na administraci. Heslo i jméno: test
Dále pak Aktuality -> přidat aktualitu Nahoře je odkaz "Přílohy" a to je to okno o kterém se bavíme... :) Na záložce přidat soubor - po odeslání aby zůstalo toto okno otevřené. Ono i kdyby se nějak podařilo do té.... Mmt, teď mě napadlo, že po přesměrování tam můžu připsat #openDialog Takže jednu čás bych teda měl. Ještě zprovoznit tu podmínku aby to po přesměrování znovu otevřelo to okno.. Zkoušel sem tam nakopírovat ten tvůj script, ale nefunguje to. Když sem to tam dal, tak to okno se otevřelo jako normální div pod formulář... |
||
candiess Profil |
Rellik:
„Zkoušel sem tam nakopírovat ten tvůj script“ Který myslíš? Ten co jsem uvedl je jen ukázka, určitě nebude fungovat, protože proměnná hash je false. hash = false; if(window.location.hash) { url = window.location.hash; h_arr = url.split("#"); hash = h_arr[1]; } if(hash) { my_val = true; } else { my_val = false; } Testoval sem přes Live Edit ve Firebugu a mě to funguje :) <script> hash = false; if(window.location.hash) { url = window.location.hash; h_arr = url.split("#"); hash = h_arr[1]; } if(hash) { my_val = true; } else { my_val = false; } $(function(){ // Tabs $('#tabs').tabs(); // Dialog $('#dialog').dialog({ autoOpen: false, width: 900, height: 500, buttons: { "Zavřít": function() { $(this).dialog("close"); }, } }); // Dialog Link $('#dialog_lnk').click(function(){ $('#dialog').dialog('open'); return false; }); // Prilohy $('#prilohy').dialog({ autoOpen: my_val, width: 650, height: 600, buttons: { "Zavřít": function() { $(this).dialog("close"); }, } }); // Přílohy Link $('#prilohy_lnk').click(function(){ $('#prilohy').dialog('open'); return false; }); //hover states on the static widgets $('#dialog_link, ul#icons li').hover( function() { $(this).addClass('ui-state-hover'); }, function() { $(this).removeClass('ui-state-hover'); } ); }); </script> |
||
Rellik Profil |
#7 · Zasláno: 29. 10. 2012, 15:33:23
Paráda díky moc. Funguje. Já s JS moc kamarád nejsem a tak bych to asi sám nezvládl.
|
||
Časová prodleva: 11 let
|
0