Domanda

Sono un principiante con l'utilizzo di jQuery e sto vivendo una domanda.

Ho fatto una galleria ei collegamenti galleria vengono aggiunti per facilitare l'utente hashtag. Ad esempio, se si aggiunge un collegamento preferito, per accedere alla pagina vedrà l'immagine a destra, perché il tag hash è presente nel collegamento.

La galleria è quasi di lavoro, in realtà volevo solo aggiungere una classe per rendere il set di immagine selezionata.

$gallery = window.location.hash;

//If have no hashtag, adds the class on the first image
if( $gallery == '')
    jQuery('.gallery-nav ul li').children('a').first().addClass('current');
else
{
    jQuery('.gallery-nav ul li').each(function($i){
        $link_hash = jQuery(this).find('a').attr('href');

        if( $link_hash == $gallery)
        {
            alert ( $link_hash );
        }
    });
}

Fino alla prima parte: "Se non hanno hashtag, aggiunge la classe sulla prima immagine" sta lavorando bene, ma poi non so come. Ad esempio, se il link è: http://example.net/gallery.php#3, voglio aggiungere la classe al terzo collegamento.

Nella funzione di cui sopra, mostra l'avviso in modo corretto. Quando raggiunge il collegamento selezionato mostra l'avviso. Ma io non so come aggiungere la classe nel collegamento.

Qualcuno potrebbe aiutarmi? Grazie.

È stato utile?

Soluzione

Si potrebbe semplicemente selezionare l'elemento direttamente utilizzando il attribute-ends-with-selector ( docs) di scegliere l'elemento in cui le estremità href con il valore di $gallery. (presumo ci sono meno di dieci.)

Come si può vedere, la $gallery è concatenato nella stringa di selezione.

else {
    jQuery('.gallery-nav ul li a[href$=' + $gallery + ']').addClass('current');
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top