• Super User

    [Jquery] Associazione errata, ma perchè?

    Salve ragazzi, se scrivo:

    
    $(window).load( function(){
    
        $('a.panel').click(function () {
            
            var current = $(this).attr('href');
                        
            current = current.css('width', '800px');        
             
            return false;
        });
    
    });
    
    

    la console di firefox mi restitusce:
    TypeError: current.css is not a function
    [TABLE]

    [TD]image[/TD]
    [TD]current = current.css('width', '800px');[/TD]
    [/TR]
    [/TABLE]

    Come mai? Come dovrei scriverlo?

    Grazie.


  • User

    In teoria così:

    $(this).css('width', '800px');
    

    Ho usato $(this) e non $(current) perché credo tu voglia modificare la width del tag a, non del suo attributo href...


  • Super User

    Praticamente ho più link così impostati:

    
    <a href="#item1" class="panel">1</a> 
    <a href="#item2" class="panel">2</a>
    <a href="#item3" class="panel">3</a>
    <a href="#item4" class="panel">4</a>
    <a href="#item5" class="panel">5</a>
    
    		<div id="item1" class="item">
    			<div class="content">11111111111</div>
    		</div>
    		
    		<div id="item2" class="item">
    			<a name="item2"></a>
    			<div class="content">22222222222</div>
    		</div>
    		
    		<div id="item3" class="item">
    			<a name="item3"></a>
    			<div class="content">33333333333</div>
    		</div>
    		
    		<div id="item4" class="item">
    			<a name="item4"></a>
    			<div class="content">44444444444</div>
    		</div>
    		
    		<div id="item5" class="item">
    			<a name="item5"></a>
    			<div class="content">55555555555</div>
    		</div>
    
    

    Praticamente ho impostato tutti i div con class="item" su display:none, per cambiare in display:block il corrispondente div realizzato, come fare?

    Grazie.


  • User Attivo

    Ciao felino,

    nella variabile current hai importato l'attributo HREF del tuo tag A. Il solo attributo HREF non può avere delle impostazioni CSS, quindi l'errore è giusto.
    A che cosa vuoi cambiare la larghezza? Al link oppure al suo div corrispondente?


  • Super User

    Al suo div corrispondente...


  • User Attivo

    @felino said:

    Al suo div corrispondente...

    Perfetto, quindi la tua variabile current contiene, nel caso del primo oggetto, la stringa "#item1", "#item2", per il secondo e così via. La tua istruzione:

    current = current.css('width', '800px');
    

    diventa

    $(current).css("width", "800px");
    

    Per come l'avevi impostata prima, stavi cercando di cambiare la proprietà css dell'attributo href, non del div, ecco perché Firefox ti aveva loggato quell'errore in console.


  • Super User

    Ottimo, adesso funzionata alla grande.
    Grazie! 😄