Changeset 7989


Ignore:
Timestamp:
12/20/13 13:40:04 (6 years ago)
Author:
kent1
Message:

Utiliser every au lieu de forEach si on cherche quelque chose dans les tableaux, cela permet de s'arrêter avec return false (sinon il faut absolument return true)

On évite une recherche dans values_commentaires lors de graph_replace car on peut savoir tout de suite si l'on a un commentaire

Un peu de documentation dans le code

File:
1 edited

Legend:

Unmodified
Added
Removed
  • plugins_spip/terraeco_infographie/trunk/infographie.html

    r7988 r7989  
    130130                                                        date_origine = date_origine+valeur;
    131131
    132                                                         values.forEach(function(row, i){
     132                                                        values.every(function(row, i){
    133133                                                                if(parseInt(row.axe_x) == date_origine){
    134134                                                                        d = row;
    135                                                                         return;
     135                                                                        return false;
    136136                                                                }
     137                                                                return true;
    137138                                                        });
    138139                                                       
     
    147148                                                                $('.tooltip').animate({'top':top,'left':left},800);
    148149                                                       
    149                                                         values_commentaire.forEach(function(row, i){
    150                                                                 if(parseInt(row.axe_x) == date_origine){
    151                                                                         d = row;
    152                                                                         var show_info = function(){
    153                                                                                 infobox
    154                                                                                         .html('<div class="close_box"><a href="#" onclick="return false;">x</a></div><div class="logo">'+d.logo+'</div><div class="contenu"><span class="annee">'+d.axe_x+'</span>'+d.commentaire+'</div>')
    155                                                                                                 .transition()
    156                                                                                                 .duration(800)
    157                                                                                                 .style("display", 'block').each("end", function(){
    158                                                                                                         d3.select("#"+containerid).select('.infobox .close_box').on('click',function(){
    159                                                                                                                 infobox
    160                                                                                                                         .transition()
    161                                                                                                                         .duration(500)
    162                                                                                                                                 .style("display", 'none');
    163                                                                                                         });
     150                                                        // Si on a un commentaire, on l'affiche
     151                                                        if(typeof(d.commentaire) == 'string' && d.commentaire.length > 1){
     152                                                                var show_info = function(){
     153                                                                        infobox
     154                                                                                .html('<div class="close_box"><a href="#" onclick="return false;">x</a></div><div class="logo">'+d.logo+'</div><div class="contenu"><span class="annee">'+d.axe_x+'</span>'+d.commentaire+'</div>')
     155                                                                                        .transition()
     156                                                                                        .duration(800)
     157                                                                                        .style("display", 'block').each("end", function(){
     158                                                                                                d3.select("#"+containerid).select('.infobox .close_box').on('click',function(){
     159                                                                                                        infobox
     160                                                                                                                .transition()
     161                                                                                                                .duration(500)
     162                                                                                                                        .style("display", 'none');
    164163                                                                                                });
    165                                                                                 }
    166                                                                         setTimeout(show_info,400);
    167                                                                         return;
    168                                                                 }
    169                                                         });
     164                                                                                        });
     165                                                                        }
     166                                                                setTimeout(show_info,400);
     167                                                        }
    170168                                                       
    171169                                                        d3.select(".paths").transition()
    172                                                                 .duration(900)
     170                                                                .duration(700)
    173171                                                                .attr("transform", "translate("+translatex+", 0)").each("end", function(){
    174172                                                                        moving = false;
     
    194192                                                        .append("g")
    195193                                                        .attr("transform", "translate(" + margin.left + "," + margin.top + ")");
     194
    196195                                                var paths = svg.append("g")
    197196                                                        .attr("class", "paths")
    198                                                 tip = d3.select("#graph1").append("div")
     197                                                       
     198                                                // Ajouter le tooltip que l'on cache automatiquement
     199                                                tip = d3.select('#'+containerid).append("div")
    199200                                                        .attr("class", "tooltip")
    200201                                                        .style("display", 'none');
    201202                                               
     203                                                // Ajouter l'infobox pour les anecdotes que l'on cache automatiquement
     204                                                infobox = d3.select('#'+containerid).append("div")
     205                                                        .attr("class", "infobox")
     206                                                        .style("display", 'none').html('<div class="logo"><div class="contenu"></div>');
     207                                               
     208                                                // Au click sur le graph, on cache l'infobox si visible
    202209                                                $('#'+containerid).on('click',function(){
    203210                                                        if($('.infobox').is(':visible'))
    204211                                                                $('.infobox').fadeOut();
    205212                                                });
    206                                                 infobox = d3.select("#graph1").append("div")
    207                                                         .attr("class", "infobox")
    208                                                         .style("display", 'none').html('<div class="logo"><div class="contenu"></div>');
    209        
    210213                                                // Add the clip path.
    211214                                                svg.append("clipPath")
     
    258261                                                        }
    259262
    260                                                         values.forEach(function(row, i){
    261                                                                 if(parseInt(row.axe_x) == origine)
     263                                                        // Utilisation de every pour couper lorsque l'on a trouvé
     264                                                        values.every(function(row,i){
     265                                                                console.log(i);
     266                                                                if(parseInt(row.axe_x) == origine){
    262267                                                                        d = row;
     268                                                                        return false;
     269                                                                }
     270                                                                return true;
    263271                                                        });
    264272
Note: See TracChangeset for help on using the changeset viewer.