Hello,
j’espère que j’aurai plus de support sur le forum d’Alsacrations parce que jusqu’à maintenant sur les autres forums où j’ai posté mon problème personne a pu vraiment m’aider...
Je rencontre un problème avec ma galerie d’images et un filtrage via jQuery qui permet d’afficher mon portfolio par type de travail.
Voici la page
Le problème: quand je clique sur une vignette de ma galerie qui a déjà été filtrée par type de travail j’aboutis bien à ma page html suivante, mais au moment de retourner dans mon historique je retombe sur l’entièreté de ma galerie et non sur le filtrage effectué auparavant, vous me direz que c’est assez normal puisque ce filtrage s’effectue à chaque fois sur la même page html, mais alors comment contourner ce problème?
Après quelques recherches j’ai abouti sur deux plug-ins jQuery: jQuery Address et jQuery BBQ: Back Button & Query Library.
Je me suis penché d'abord sur le deuxième script jQuery BBQ: Back Button & Query Library, j’ai trouvé parmi les exemples du site de l’auteur ce qui semblait être LA solution, j’étais tout content d’avoir enfin quelque chose de valable sous la main, hélas ces deux scripts (solution hash après l’adresse html combiné avec le filtrage de mes travaux) rentrent en conflit.
Script jQuery BBQ: Back Button & Query Library:
Ici quand je désactive les instructions jQuery pour le filtrage de mes travaux, le hashbang est bien appliqué (voir après l'adresse html dans le barre de navigation du navigateur).
Voici le script pour l'ajout du hashbang avec le script jQuery BBQ: Back Button & Query Library:
Ici quand j’active les instructions jQuery pour le filtrage de mes travaux c’est le hashbang qui n’est plus pris en considération.
Voici le script jQuery pour le filtrage de mes travaux:
Comment fusionner ces deux scripts afin de ne pas avoir de conflits? Les scripts fonctionnent mais selon moi puisqu'ils ciblent tous les deux les mêmes éléments il rentrent en conflit...
Assez désespéré je me suis penché aussi sur l'autre script: jQuery Address
Ici quand je désactive les instructions jQuery pour le filtrage de mes travaux le hashbang est bien appliqué (voir après l'adresse html dans le barre de navigation du navigateur).
Voici le script pour l'ajout du hashbang avec le script jQuery Address:
Et rebelotte, là aussi conflit avec l'autre script ou en tout cas le script prends le dessus sur l'autre...
Ma conclusion c'est que les deux scripts fonctionnent individuellement... mais pas ensemble...
Cela fait maintenant quelques jours que j’effectue des recherches et que j’essaie de m’en sortir, mais je tourne en rond et je perds un temps monstre... On fait quoi quand on est face à un mur...? Quelqu’un aurait l’amabilité de m’indiquer comment m’en sortir. Merci.
Modifié par porcini (22 Jul 2012 - 21:07)
j’espère que j’aurai plus de support sur le forum d’Alsacrations parce que jusqu’à maintenant sur les autres forums où j’ai posté mon problème personne a pu vraiment m’aider...
Je rencontre un problème avec ma galerie d’images et un filtrage via jQuery qui permet d’afficher mon portfolio par type de travail.
Voici la page
Le problème: quand je clique sur une vignette de ma galerie qui a déjà été filtrée par type de travail j’aboutis bien à ma page html suivante, mais au moment de retourner dans mon historique je retombe sur l’entièreté de ma galerie et non sur le filtrage effectué auparavant, vous me direz que c’est assez normal puisque ce filtrage s’effectue à chaque fois sur la même page html, mais alors comment contourner ce problème?
Après quelques recherches j’ai abouti sur deux plug-ins jQuery: jQuery Address et jQuery BBQ: Back Button & Query Library.
Je me suis penché d'abord sur le deuxième script jQuery BBQ: Back Button & Query Library, j’ai trouvé parmi les exemples du site de l’auteur ce qui semblait être LA solution, j’étais tout content d’avoir enfin quelque chose de valable sous la main, hélas ces deux scripts (solution hash après l’adresse html combiné avec le filtrage de mes travaux) rentrent en conflit.
Script jQuery BBQ: Back Button & Query Library:
Ici quand je désactive les instructions jQuery pour le filtrage de mes travaux, le hashbang est bien appliqué (voir après l'adresse html dans le barre de navigation du navigateur).
Voici le script pour l'ajout du hashbang avec le script jQuery BBQ: Back Button & Query Library:
$(function(){
// Bind an event to window.onhashchange that, when the hash changes, gets the
// hash and adds the class "selected" to any matching nav link.
$(window).hashchange( function(){
var hash = location.hash;
// Set the page title based on the hash.
document.title = 'iorbita - ' + ( hash.replace( /^#/, '' ) || 'blank' ) + '.';
// Iterate over all nav links, setting the "selected" class as-appropriate.
$('#filtre li a').each(function(){
var that = $(this);
that[ that.attr( 'href' ) === hash ? 'addClass' : 'removeClass' ]( 'selected' );
});
})
// Since the event is only triggered when the hash changes, we need to trigger
// the event now, to handle the hash the page may have loaded with.
$(window).hashchange();
});
Ici quand j’active les instructions jQuery pour le filtrage de mes travaux c’est le hashbang qui n’est plus pris en considération.
Voici le script jQuery pour le filtrage de mes travaux:
$('#filtre li a').click(function () { // On clique sur un filtre
$('#filtre li').removeClass('active'); // Supprimer la classe "active" sur tous les liens du filtre
$(this).parent().addClass('active'); // Ajouter la classe "active" sur le parent (li) du "a" cliqué
var valeurFiltre = $(this).text().toLowerCase().replace(' ', ''); // On stocke dans une variable la valeur du lien cliqué, en minuscule et sans espace
$('#portfolio li').hide(); // Cacher tous les projets
if (valeurFiltre == "tout") { // On teste si le filtre appliqué est sur "tout"
$('#portfolio li').show('slow'); // Alors on montre tous les projets
} else {
$('#portfolio li').each(function () { // Sinon c'est que l'on est dans une catégorie
if (!$(this).hasClass(valeurFiltre)) { // On vérifie si le "li" n'a pas la classe du filtre appliqué
$(this).hide('slow'); // On cache les projets qui n'ont pas cette classe
} else {
$(this).show('slow'); // Sinon on les montre
}
});
}
return false; // Bloque l'action initiale du lien
});
Comment fusionner ces deux scripts afin de ne pas avoir de conflits? Les scripts fonctionnent mais selon moi puisqu'ils ciblent tous les deux les mêmes éléments il rentrent en conflit...
Assez désespéré je me suis penché aussi sur l'autre script: jQuery Address
Ici quand je désactive les instructions jQuery pour le filtrage de mes travaux le hashbang est bien appliqué (voir après l'adresse html dans le barre de navigation du navigateur).
Voici le script pour l'ajout du hashbang avec le script jQuery Address:
$('#filtre li a').click(function () {
$(this).address.history(function() {
return $(this).attr('href').replace(/^#/, '');
});
});
Et rebelotte, là aussi conflit avec l'autre script ou en tout cas le script prends le dessus sur l'autre...
Ma conclusion c'est que les deux scripts fonctionnent individuellement... mais pas ensemble...
Cela fait maintenant quelques jours que j’effectue des recherches et que j’essaie de m’en sortir, mais je tourne en rond et je perds un temps monstre... On fait quoi quand on est face à un mur...? Quelqu’un aurait l’amabilité de m’indiquer comment m’en sortir. Merci.
Modifié par porcini (22 Jul 2012 - 21:07)