Récupérer la valeur d'un élément de tableau jQuery :

Toutes vos questions sur jQuery, CSS, HTML5, mise en page...
ph.gras
Addict
Addict
 
Messages: 71
Inscription: 23 Juin 2013, 13:39

Récupérer la valeur d'un élément de tableau jQuery :

Messagede ph.gras » 10 Juil 2013, 10:08

J'ai passé la journée à essayer de récupérer la valeur d'un tableau qui s'affiche
comme une liste d'images en fond d'écran (background CSS), mais sans succès.

C'est pour afficher des boutons de partage sous les contenus des pages du site :

Je récupère les éléments de la page :
Code: Tout sélectionner
<script type="text/javascript">
   jQuery(function($){;
      var pm = '<?php the_permalink(); ?>';
      var ti = '<?php the_title(); ?>';
Puis, je crée deux tableaux d'objets jQuery pour les boutons :
Code: Tout sélectionner
      var google = { cls: 'google', str: 'Google Plus', lnk: 'https://plus.google.com/share?url='+pm };
      var facebook = { cls: 'facebook', str: 'Facebook', lnk: 'http://www.facebook.com/sharer.php?u='+pm+'&t='+ti };
      var ay = [email, digg_france, viadeo, scoopit, yahoo, pi_myspace, linkedin, delicious, netvibes, spotrank, pi_live, technorati, twitter, google, facebook];
Pour afficher les boutons, tout se passe comme sur des roulettes :
Code: Tout sélectionner
      $('#agregs').hide();
      $('#agregs').html('Partagez sur : ');
      $.each(ay, function(id, val){
      $('#agregs').append('<li class="'+val.cls+'" title="Partager sur '+val.str+'"></li>');
      });
      $('#agregs').fadeIn();
Mais je n'arrive pas à attribuer le lien val.lnk à chaque élément de ma liste :
Code: Tout sélectionner
            console.log($('#agregs > li').get());
      $('#agregs > li').bind('click', function(){
         $.each(ay, function(id, val){
            alert('Handler for '+val.cls+' .click() called.');
            return false;
            });
            //   $(location).attr('href', val.lnk);
            // alert('Handler for '+ay[2].cls+' .click() called.');
               });
   });
</script>
Comment faire ?

Avatar de l’utilisateur
Galdon
Administrateur du site
Administrateur du site
 
Messages: 2188
Inscription: 06 Sep 2008, 22:05

Re: Récupérer la valeur d'un élément de tableau jQuery :

Messagede Galdon » 13 Juil 2013, 10:56

Je ne comprend pas pourquoi tu ajoute l'attribut href au moment du clic, pourquoi ne pas le faire au chargement de la page tout simplement ?
Et je crois que tu essaie d'ajouter un attribut href à un <li>, alors qu'il faut le faire sur une ancre (<a>) pour créer un lien hypertexte.
"Si tu veux me parler, envoie-moi un... FAX !" - George Abitbol

ph.gras
Addict
Addict
 
Messages: 71
Inscription: 23 Juin 2013, 13:39

Re: Récupérer la valeur d'un élément de tableau jQuery :

Messagede ph.gras » 14 Juil 2013, 17:33

C'est pour échapper à la Gestapo. Si je fais tout ça, c'est pour diminuer le jus
qui passe par les pages Web. Sinon, j'aurais conservé mes boutons de partage
comme ils sont actuellement, en lien bateau sous les articles. Finalement, j'ai
trouvé une solution dans la boucle each :
Code: Tout sélectionner
         $('#agregs').hide();
         $('#agregs').html('Partagez sur : ');
         $.each(ay, function(id, val){
         $('#agregs').append('<li class="'+val.cls+'" title="Partager sur '+val.str+'"></li>');
         $('.'+val.cls).bind('click', function(e){
            if (id==0){location.href = val.lnk;
            } else {
            window.open(val.lnk);}e.preventDefault();
            });
         });
         $('#agregs').fadeIn();
         }

Avatar de l’utilisateur
Galdon
Administrateur du site
Administrateur du site
 
Messages: 2188
Inscription: 06 Sep 2008, 22:05

Re: Récupérer la valeur d'un élément de tableau jQuery :

Messagede Galdon » 14 Juil 2013, 21:36

Ok, si j'ai bien compris c'est pour faire une forme de pagerank sculpting, mais ça marche aussi bien si tu créé les liens au chargement.
Googlebot n’exécute pas le javascript, donc à partir du moment où les liens sont générés en Javascript, ils ne seront pas visibles par google.
"Si tu veux me parler, envoie-moi un... FAX !" - George Abitbol

ph.gras
Addict
Addict
 
Messages: 71
Inscription: 23 Juin 2013, 13:39

Re: Récupérer la valeur d'un élément de tableau jQuery :

Messagede ph.gras » 14 Juil 2013, 22:00

Oui, ça je sais que Googlebot ne charge pas le JS. Mais j'ai eu une drôle de surprise dernièrement :
http://www.webentrepreneurdebutant.fr/forum/google-prend-les-routines-javascript-compte-t9039.html

Google dispose d'une dizaine, voire plus, de robots qui se chargent chacun de choses différentes,
et à la fin, tu te retrouves comme une bille avec tes astuces en JS, ou autre.

J'en avais d'ailleurs lu quelques lignes sur Web Rank Info l'année dernière ou même avant, mais je
n'en avais pas tenu compte alors, et jusqu'à ce jour.

Je suis sûr que Google lit aussi le jQuery dans le texte, mais bon… Des fois que ça passe à l'as 8-) .

Avatar de l’utilisateur
Galdon
Administrateur du site
Administrateur du site
 
Messages: 2188
Inscription: 06 Sep 2008, 22:05

Re: Récupérer la valeur d'un élément de tableau jQuery :

Messagede Galdon » 15 Juil 2013, 18:36

Je savais pas que Googlebot était devenu si vicieux, ça fait quelques années que je ne fais plus de veille en référencement, sur webrankinfo ou webmaster-hub.

En parlant de ça, tu arrive encore à référencer des sites toi ?
Moi je trouve que c'est de plus en plus dur, quand j'ai commencé fin 2007 avec finalclap c'était déjà pas facile (beaucoup moins que la panacée que ça devait être avant 2005...), mais là ça devient carrément impossible, on peut plus rien faire !

En plus les résultats de google sont de moins en moins diversifiés, il y a souvent une poignée de gros sites qui remontent toujours pour n'importe quelle requête sur une thématique donnée.
"Si tu veux me parler, envoie-moi un... FAX !" - George Abitbol

ph.gras
Addict
Addict
 
Messages: 71
Inscription: 23 Juin 2013, 13:39

Re: Récupérer la valeur d'un élément de tableau jQuery :

Messagede ph.gras » 15 Juil 2013, 22:33

C'est devenu très difficile, en effet. Si je me suis tourné vers Ajax et jQuery,
c'est justement parce que les gros sites font appel à ces ressources afin de
formater leurs données de cette manière… L'affichage destiné à l'expérience
utilisateur passe généralement en requête externe ou serveur maintenant.


Retourner vers HTML / CSS / Javascript

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités