Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [JQueryUI] Elementi nei tab non refreshano

    Sto utilizzando i tab di jquery ui in cui carico intere pagine web. Cioè ogni tab chiama
    una pagina web php. Ognuna di queste pagine contiene del codice jquery per popolare delle select.

    Problema 1:

    Ho notato che se passo per uno specifico tab, in un altro specifico tab una select non viene più popolata, nonostante il risultato della query sia presente.

    Problema 2:

    In un tab ho dei datepicker nei form. Tali datepicker appaiono solo quando entro in questo tab per la prima volta. Se cambio tab e ci torno, non appaiono più.

    Tecnicamente al cambio del tab viene ricaricata la pagina richiesta, quindi dovrebbe ripresentarsi come prima, ma a quanto pare non è così.

  2. #2
    Quote Originariamente inviata da Javino89 Visualizza il messaggio
    Tecnicamente al cambio del tab viene ricaricata la pagina richiesta, quindi dovrebbe ripresentarsi come prima, ma a quanto pare non è così.
    Infatti non è così.
    Anche se sono contenuti (apparentemente) identici, ricaricandoli perdi tutti gli eventi associati ai vecchi elementi.

    Per ovviare, devi associare gli eventi in maniera "live", tramite on() di jQuery.
    Devi inoltre verificare che i plug-in che vuoi usare supportino i live-events.

    Se questo tipo particolare di associazione degli eventi non è supportata dal plug-in, dovrai re-inizializzare il plug-in ogni volta che nuovi elementi, che necessitano il plug-in stesso, vengono caricati nel DOM.
    Ultima modifica di lucavizzi; 01-11-2016 a 12:08

  3. #3
    Non credo di aver capito molto.

    Per quanto riguarda la select, è l'unica che non funziona e alla quale non vengono appesi i dati (le altre funzionano). E ciò capita solo se passo per uno specifico tab. Se salto quel tab, quella select funziona e viene inizializzata correttamente.

    Per il datepicker. Potrei avere un esempio?

    La guida ufficiale dice di fare così:

    codice:
    $( function() {
        $( "#datepicker" ).datepicker();
      } );
    Io ho provato a fare così:

    codice:
    $(document).on( "focus", "input.datepicker:not(.hasDatepicker)", function() {
                        $( this ).datepicker({
                            dateFormat: "yy-mm-dd",
                            constrainInput: true,
                        });
                    });
    Ma ho lo stesso identico problema.

    Nota:

    Ho provato a mettere un alert("messaggio") prima di $(this).datepicker...

    Quel che succede se cambio tab e torno a selezionare le date, è che l'alert compare
    più volte di fila!

    Nota 2:

    Ho notato che ad ogni cambio di tab, l'alert viene mostrato una volta in più.

    Nota 3:

    Tutte le pagine web caricate nei tab importavano jquery-ui nell'head. Ho rimosso tali importazioni ed ora il datepicker sembra ricomparire.
    Ultima modifica di Javino89; 01-11-2016 a 15:24

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.