Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Problema con jQuery

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    71

    Problema con jQuery

    function ajax(id_res,urlToCall,urlToPost) {
    jQuery('#'+id_res).html('<div class="loader">Ricerca in corso...</div>');
    jQuery.ajax({url:urlToCall,data:urlToPost,method:' POST',complete:function(xml,status){ jQuery('#'+id_res).html(xml.responseText); }});
    }

    per popolare un determinato div o altro però ho un problema io lo popolo con dei div di questo tipo

    <div class="1">a</div>
    <div class="1">a</div>
    <div class="1">a</div>
    <div class="1">a</div>

    il problema sorge quando voglio nasconderli o fare altre operazioni tramite jquery

    questo codice
    codice:
    jQuery('.1').click(function() { confirm('confermi?') });
    logicamente lo metto nel ready ma il problema è proprio qui visto che quando la pagina viene caricata i div ancora non sono popolati ma vengono popolati in seguito con la funzione ajax... sapreste dirmi come risolvere grazie.

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    se vuoi gestire il click o qualunque altro evento su elementi non ancora esistenti al $(document).ready(), puoi farlo usando delegate

    $(document).delegate(".1", "click", function(){confirm("confermi?")});

    Oppure utilizzando live

    $(".1").live("click", function(){confermi("confermi?")});

    Considera che delegate può essere richiamato anzichè su tutto il document sul selettore del contenitore dell'elemento per il quale vuoi gestire l'evento.
    Con live non hai la possibilità di ottimizzare, però usare delegate come te l'ho mostrato io equivale ad utilizzare live.

    Tuttavia se non devi gestire eventi ma proprietà (html, text, css...) su elementi non ancora presenti delegate o live non risolvono il problema, l'unica è gestire la cosa all'interno della complete o success della richiesta asincrona.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    71
    grazie sei stato gentilissimo ho usato la funzione live ed ha risolto perfettamente il problema ne approfitto per chiederti un altra informazione io uso questa riga

    jQuery(document).keyup(function(e) { if (e.keyCode == 27) { close_screen();} });

    per chiudere dei div aperti a tutto schermo ma spesso se non faccio un focus manuale cliccando prima sul div e poi premendo esc il tutto non funziona grazie in anticipo =)

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    puoi forzare il focus su un elemento con

    $(selettorelemento).focus();

    Non so se funziona anche con i div oltre che con i campi di input e non so se hai modo di ottenere il selettore dell'elemento aperto a tutto schermo, però potresti salvarne l'id nello stesso momento in cui lo apri a tutto schermo e recuperarlo alla pressione del tasto.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    71
    si avevo già provato a settare il focus ma niente nn sempre funziona e non capisco il perché... grazie cmq...


    ajax('info_rubrica','include/ajax_call/ac_rubrica_info.php','+jQuery(this).attr('id')+');

    come posso risolvere questo problema di dover mettere quella stringa per avere l'id tra apici ''...

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    71
    Ragazzi c'è una volta usata la funzione


    function ajax(id_res,urlToCall,urlToPost) {
    jQuery('#'+id_res).html('<div class="loader">Ricerca in corso...</div>');
    jQuery.ajax({url:urlToCall,data:urlToPost,method:' POST',complete:function(xml,status){ jQuery('#'+id_res).html(xml.responseText); }});
    }


    c'è modo di riavere quello che conteneva prima il div manipolato ?

  7. #7
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    chiudo, per titolo generico
    e discussione generica (problemi diversi nella stessa discussione)

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.