Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16

Discussione: jquery dentro jquery

  1. #1
    Utente di HTML.it L'avatar di Scream
    Registrato dal
    Apr 2002
    Messaggi
    228

    jquery dentro jquery

    Ho capito che il problema di questo 3d http://forum.html.it/forum/showthrea...readid=1498626 (prego i moderatori di cancellarlo se possibile) è il fatto che le istruzioni jquery sono riferite a codice che mi viene a sua volta generato da jquery.
    Mi spiego: preview e overlay funzionano solo se li metto in una pagina dove i contenuti html sono già presenti.
    Se ottengo i contenuti e li stampo mediante jquery, poi non posso più trattarli per successive istruzioni jquery.
    C'è un modo per poterlo fare? In pratica usare jquery dentro jquery.

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    Se non ho capito male utilizzando il metodo http://api.jquery.com/on/ dovresti risolvere

  3. #3
    Utente di HTML.it L'avatar di Scream
    Registrato dal
    Apr 2002
    Messaggi
    228
    Scusami l'ignoranza, ma non capisco dove dovrei inserirlo. La struttura è nel 3d che ho indicato, ma non riesco a capire dagli esempi della guida jquery come dovrei modificare il mio script per farlo funzionare.
    Se riesci ad aiutarmi (mandami pure il conto via paypal se vuoi) la cosa mi servirebbe anche con una certa urgenza. Con jquery sono proprio a terra e mi hanno rifilato questa cosa pochi giorni fa. Tra json, jquery, ajax mi sono giocato anche il week-end

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    se hai un pagina demo ti do una mano volentieri, altrimenti dovrei ricrearmi il problema e siceramente non ne ho voglia, il codice non l'avevo nemmeno guardato mi sono basato sulla tua spiegazione nel primo post.

  5. #5
    Utente di HTML.it L'avatar di Scream
    Registrato dal
    Apr 2002
    Messaggi
    228
    Ti preparo qualcosa al volo in serata. nel frattempo ho deciso di fare pagine separate per metterci una pezza temporanea che permetta di vedere il risultato

  6. #6
    Utente di HTML.it L'avatar di Scream
    Registrato dal
    Apr 2002
    Messaggi
    228
    intanto ecco una porzione del tutto. al posto dei libri ho messo dei film perché devo fare la stessa cosa, ma con le preview (stesso progetto con libri o film in base a quanto scelto dall'utente)
    http://screamit.altervista.org/prova.html

    In pratica sarebbe il contenuto del primo overlay. credo che a bloccare sia questa porzione di codice:
    codice:
    $('#list_dir li').click(function(){
      var contenuto_lista = this.id;
        $.post('json.php', {dir_id: contenuto_lista}, mostra_film, 'json');
    });

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    La porzione di codice che hai indicato mi pare corretta infatti la lista viene aggiornata con i dati recuperati da php, il problema sta nella funzione di overlay. L'overlay viene applicato esclusivamente al codice html già presente nella pagina, per fare in modo di associare l'overlay ai link(a[rel]) creati successivamente è necessario utilizzare il metodo on(o live/delegate dipende dalla versione di jquery che includi nella pagina). Quindi prova a modificare il codice cosi:

    codice:
    $("a[rel]").on("click",function(e){
    $(this).overlay({ 
        mask: 'darkred',
        effect: 'apple',
        //è necessario caricare l'overlay immadiatamente dopo averlo inizializzato
        load: true, 
        onBeforeLoad: function() {
          // grab wrapper element inside content
          var wrap = this.getOverlay().find(".player");
          // load the page specified in the trigger
          wrap.load(this.getTrigger().attr("href"));
        }
      });
    e.preventDefault(); 
    });
    In rosso le modifiche/aggiunte.

  8. #8
    Utente di HTML.it L'avatar di Scream
    Registrato dal
    Apr 2002
    Messaggi
    228
    no, non funziona. e comunque dovrei far aprire anche l'anteprima come nella prima lista di link

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    utilizza il metodo live al posto di on, sembra che includendo jquery tools il metodo on non funzioni correttamente, non ho capito perche

    Per l'anteprima il discorso è analogo:

    codice:
              $(".title").live("mouseenter",function () {
    //	    $(this).append($("<span> ***</span>"));
    	    var contenuto_preview = this.id;
    	    $('img').remove('.filmpreview');
    	    $('#preview').append('[img]films/directors/'+contenuto_preview+'/preview.png[/img]');
    	    $('#preview').show();
    	  }).live("mouseleave", function () {
    //	    $(this).find("span:last").remove();
    	    $('img').remove('.filmpreview');
    	    $('#preview').hide();
    	  });
    edit: al posto di mouseenter mouseleave è + corretto utilizzare mouseover mouseout, insomma vedi tu fai un po' di prove

  10. #10
    Utente di HTML.it L'avatar di Scream
    Registrato dal
    Apr 2002
    Messaggi
    228
    Ok, direi che così funziona. Il problema è che se quel blocco è in un overlay contenente una pagina esterna non va.
    Se ricarichi ora la prova vedi più o meno cosa succede.
    Registi apre quello che era la prova prima in un overlay e l'overlay successivo non funziona più
    In Film invece si apre una lista e cliccando si apre l'overlay, ma nel box bianco che compare dovrebbe esserci il player che invece non c'è.

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.