Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    jquery - selezionare il contenuto di un href all'interno di $(this)

    Ciao a tutti.

    Ho dei link che sono all'interno di tag h2 e vorrei recuperare il loro contenuto.

    <h2>Mio link</h2>

    IL codice è questo:

    codice:
    $('h2').click(){
    $(this) bla bla bla...
    }
    ps: per vari motivi lo devo recuperare con $('h2') e non con un $('h2 a').attr('href');
    Cioè il concetto è che devo usare $(this)... quindi non so la sintassi ma potrebbe essere qualcosa del tipo $((this)>a).attr('href');
    grazie mille!

  2. #2
    http://api.jquery.com/jQuery/
    Codice PHP:
    $('h2').click(function() {
      var 
    url = $('a'this).attr('href');
    }); 

    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  3. #3
    grazie mille!
    funziona perfettamente!

  4. #4
    Scusami un'altra cosa riguardo this.
    Come faccio a passarlo come valore di funzione?

    codice:
    $(this).next().load(toLoad, '', showContent);
    
    function showContent(){
       $(this).next().slideDown('jswing');
    }
    ovviamente nella funzione showContent il this non viene preso

    grazie ancora!

  5. #5
    Codice PHP:
    function showContent(){
            
    alert(this.tagName);
            $(
    this).next().slideDown('jswing');
        }
        $(
    'h2').click(function(e) {
            var 
    url = $('a'this).attr('href');
            $(
    this).next().load(url''showContent);
            return 
    false;
        }); 
    fai tu
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  6. #6
    ho provato ma non mi funziona. Ecco la mia pagina test con l'esempio del codice di sopra.

    codice:
    <!DOCTYPE>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script>
    <title>Untitled Document</title>
    
    <script>
    $(document).ready( function(){
    	function showContent(){ 
    		  alert(this.tagName); 
    		  $(this).next().slideDown('jswing'); 
    	} 
    	$('h2').click(function(e) {
    		  var url = $('a', this).attr('href'); 
    		  $(this).next().load(url, '', showContent); 
    		  return false; 
    	});
    });
    </script>
    
    </head>
    
    <body>
    
    <h2>Ciccio</h2>
    <div style="display:none">Ciao ciao ciao</div>
    <h2>Caio</h2>
    <div style="display:none">Ciao ciao ciao</div>
    <h2>Sempronio</h2>
    <div style="display:none">Ciao ciao ciao</div>
    
    </body>
    </html>
    Ma nono riesco a capire come la funzione showContent possa conoscere il valore di this. Forse perchè viene richiamato da un'altra funzione dove this lo si conosce?
    Che cos'è quella (e)? poi non viene riutilizzata nella funzione.

    Grazie mille per la pazienza!

  7. #7
    this all'interno dell'event handler click
    è sempre l'elemento h2
    showContent è contenuta nel click
    quindi legge il suo scope
    spero che l'esempio serva

    per l'e

    http://api.jquery.com/category/events/event-object/

    Codice PHP:
    $('h2').click(function(e) {
          
    alert(e.target.nodeName);
          var 
    url ='/';// $('a', this).attr('href');
          
    var that this;
          $(
    this).next().load(url'', function(){
              
    alert(that.tagName);
              $(
    that).next().slideDown('jswing');
          });
         return 
    false;
    }); 
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  8. #8
    grazie mille per le dritte.
    Nell'ultimo esempio che mi hai fatto mi torna il tutto, poichè "this" si trova all'interno dell'event handler click, mentre nell'esempio di prima, la funzione showContent si trova all'esterno del click, e forse è per quello che lo script che ho riportato non funziona.

    Ho letto anche la pagina che mi hai indicato per capire che cos'è quella "e". Quello che ho capito è che è un evento che si può monitorare, però negli esempi che fanno dichiarano sempre la "e"... una volta come click e un'altra come keyDown... mamma mia che confusione!

  9. #9
    Alla fine sono riuscito in quello che cercavo di fare, ovvero un accordion che caricasse contenuti dinamicamente... ovvio, visto che sono un novellino non sò se è fatto bene:

    Codice PHP:
    <div id="project-box">
    <
    h2>[url="project.php?id=1"]MAGNA LAUDE IN DORM VIAE[/url]</h2>
     <
    h2>[url="project.php?id=2"]MAGNA LAUDE IN DORM VIAE[/url]</h2>
     <
    h2>[url="project.php?id=3"]MAGNA LAUDE IN DORM VIAE[/url]</h2>
     <
    h2>[url="project.php?id=4"]MAGNA LAUDE IN DORM VIAE[/url]</h2>
    </
    div

    Codice PHP:
    $('#project-box > h2').click( function () {
            
                var 
    titolo = $(this);
                
    titolo.addClass("press");
            
                var 
    container = $('.project:visible');
                
                if (
    container.length 0) {
                    
    container.prev().removeClass("press");
                    
    container.slideUp('jswing', function(){
                        
    loadContent();
                    });
                } else {
                    
    loadContent();
                }
                
                function 
    loadContent () {
                    $(
    '#load').remove(); // rimuovo il loading
                    
    $('#wrap').append('<span id="load">LOADING...</span>');  // lo inserisco
                    
    $('#load').fadeIn('normal'); // lo faccio comparire
                    
                    
    var toLoad = $('a'titolo).attr('href');
                    
    titolo.after('<div class="project"></div>');
                    
    titolo.next().load(toLoad, function(){
                        $(
    this).slideDown('jswing');
                        $(
    '#load').fadeOut('normal');
                        
    slider();
                    });
                }
                return 
    false;
        }); 
    Ho un po' di confusione per quanto riguarda le variabili sulla root e nelle funzioni...
    Ho capito che se la dichiaro fuori (come var titolo) posso utilizzarla all'interno di una funzione, ma non ho capito ancora come si fa a passare "this" a una funzione o a fare che la funzione che si lancia abbiamo lo stesso this di quella che l'ha richiamata... alla fine nello script che ho passato sopra ho fatto uno zig zag per evitare il problema.

    Troppe domande perdonatemi, potete anche mandarmi a quel paese!

  10. #10
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

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.