2014-07-04 21 views
5

Yahoo hava durumu RSS beslemesine "Skycons" JavaScript eklentisini bağladım. Sorun şu ki, birden çok gün aynı hava tahminine sahip olabilir ve eklenti sınıf yerine simgelerden ID çeker çünkü aynı simgeyi ikinci kez çekemiyorum.Skycons, aynı simgeyi iki kez gösteremez mi?

Örneğin, aşağıdaki tüm simgeler geçen li örneğinden ayrı gösterecektir - Ben tekrarlanan çünkü id kar: burada

<!--SkyCons--> 
<script type="text/javascript" src="js/vendors/skycons/skycons.js"></script> 
<script> 
     var icons = new Skycons({"color": "#fff"}), 
      list = [ 
      "clear-day", "clear-night", "partly-cloudy-day", 
      "partly-cloudy-night", "cloudy", "rain", "sleet", "snow", "wind", 
      "fog" 
      ], 
      i; 

     for(i = list.length; i--;) 
     icons.set(list[i], list[i]); 

     icons.play(); 
    </script> 

ve: İşte

<ul class="days"> 
     <li class="col-md-3 col-sm-3 col-xs-3"><strong>Saturday</strong> 
      <canvas id="snow" width="50" height="50"></canvas> 
      <span>19&deg;</span> 
     </li> 
     <li class="col-md-3 col-sm-3 col-xs-3"><strong>Sunday</strong> 
      <canvas id="rain" width="50" height="50"></canvas> 
      <span>19&deg;</span> 
     </li> 
     <li class="col-md-3 col-sm-3 col-xs-3"><strong>Monday</strong> 
      <canvas id="sleet" width="50" height="50"></canvas> 
      <span>19&deg;</span> 
     </li> 
     <li class="col-md-3 col-sm-3 col-xs-3"><strong>Wednesday</strong> 
      <canvas id="snow" width="50" height="50"></canvas> 
      <span>19&deg;</span> 
     </li> 
</ul> 

benim init JS olduğunu başvurulan JS dosyasına bir bağlantı:

https://github.com/darkskyapp/skycons/blob/master/skycons.js

+0

Eklentiyi başlatmak için çalıştırdığınız komut dosyası nedir? –

+0

Lütfen yukarıda gördüğünüz gibi, bu –

cevap

9

Y ou

for(i = list.length; i--;) { 
    var weatherType = list[i], 
     elements = document.getElementsByClassName(weatherType); 
    for (e = elements.length; e--;){ 
     icons.set(elements[e], weatherType); 
    } 
} 

(yerine kimlikleri sınıflarını kullanmak html Ve değiştirin) ve

<li class="col-md-3 col-sm-3 col-xs-3"><strong>Saturday</strong> 
     <canvas class="snow" width="50" height="50"></canvas> 
     <span>19&deg;</span> 
    </li> 
    <li class="col-md-3 col-sm-3 col-xs-3"><strong>Sunday</strong> 
     <canvas class="rain" width="50" height="50"></canvas> 
     <span>19&deg;</span> 
    </li> 
    <li class="col-md-3 col-sm-3 col-xs-3"><strong>Monday</strong> 
     <canvas class="sleet" width="50" height="50"></canvas> 
     <span>19&deg;</span> 
    </li> 
    <li class="col-md-3 col-sm-3 col-xs-3"><strong>Wednesday</strong> 
     <canvas class="snow" width="50" height="50"></canvas> 
     <span>19&deg;</span> 
    </li> 

için html değiştirmek yerine id

unsuru referansları ile çalışır sürümünü kullanmalısınız IE8 ve daha büyük bir sürümü desteklemeniz gerekiyorsa, bu polyfill'i getElementsByClassName işlevi için kullanmanız gerekir: Polyfill for getElementsByClassName for particular uses

+0

Spot'u eklemek için asıl gönderiyi düzenledim, mükemmel çalışıyor. Yanıtın, 15'in altındaki itibara kadar faydalı olduğunu belirtmeme izin vermez. –

+0

@TomHughes Eğer isterseniz, oylama düğmelerinin altındaki onay işaretiyle doğru olarak kabul edebilirsiniz. –

+0

@ GabyakaG.Petrioli bu kesinlikle bana yardımcı oldu. İşte [CodePen] (http://codepen.io/damiththa/pen/xOOEZQ?editors=1010) – MadushM

İlgili konular