Je rencontre quelques problèmes pour rendre mon jquery correctement 100% du temps - le code que j'utilise est situé ci-dessous. Son but est de "simuler" l'ambiance d'un forum à threads en masquant tout sauf le sujet des réponses - lorsqu'un sujet est cliqué, le 1er post est alors remplacé par la réponse.
Vous pouvez voir un exemple de son fonctionnement ici :
http://bulldogsworld.com/general-bulldog-chat/50-lbs-bulldog-one-shin-pic
Le problème est que le script ne fonctionne pas très bien lorsque les gens arrivent via un signet # dans l'URL, comme par exemple :
http://bulldogsworld.com/general-bulldog-chat/50-lbs-bulldog-one-shin-pic#comment-1627028
Plus précisément, le problème qui se produit est que pour une raison quelconque, tous les posts en dessous du point d'entrée du signet sont répliqués deux fois. Je n'arrive pas à comprendre pourquoi cela se produit - des idées ?
Je suis à bout sur celui-ci - Toute aide / conseils sera grandement appréciée !
function flip(comment) {
$('#first-post').replaceWith(comment.closest(".comment").clone().attr('id','first-post'));
$('#first-post').children('.forumthreadtitle').children('.comment-info').empty();
$('#first-post').find(':hidden').fadeIn('lentement');
$('html, body').animate({scrollTop:0}, 'rapide');
return false;
}
$(document).ready(
function(){
$('.submitted').each(function() {
$(this).clone().addClass('comment-info').appendTo($(this).siblings('.forumthreadtitle'));
if(!$(this).parent('#first-post').html()) {
$('#first-post').children('span.taxonomy').clone().appendTo($(this));
}
});
$('.display_mode').html('Afficher toutes les réponses');
expandedMode = false;
$('.display_mode').click(function() {
if ( expandedMode == false ) {
$('.forumthreadtitle').siblings().show();
$(this).html('Réduire les réponses');
expandedMode = true;
}
else
{
$('.forumthreadtitle').siblings().hide();
$(this).html('Afficher toutes les réponses');
expandedMode = false;
}
});
$('.forumthreadtitle').siblings().hide();
if(window.location.hash) {
flip($(window.location.hash).nextAll().children('.forumthreadtitle').show());
}
$('.forumthreadtitle').click(function() {
pageTracker._trackPageview("/comment?page=" + document.location.pathname);
flip($(this));
} );
});