2010-11-18 11 views
1
$("#main .landkaart ul li > ul").hide(); 

$(".landkaart ul li").hover(function() 
{ 
    if($("ul",this).hasClass("open")) 
    { 
     $("ul", this).fadeOut().removeClass('open'); 
    } 
    else 
    { 
     $("ul", this).fadeIn().addClass('open'); 
    } 
}); 

ich diesen HTML-Struktur haben:setzen einen jquery Timer

<div class="landkaart"> 
    <ul> 
     <li><a class="doetinchem" title="Vestiging Doetinchem" href="vestiging.html">Doetinchem</a> 
      <ul class="doetinchem"> 
       <li><h2>Doetinchem</h2></li> 
       <li>Gildenbroederslaan 4</li> 
       <li>Postbus 196</li> 
       <li>7000 AD Doetinchem</li> 
       <li>Telefoon (0314) 37 70 00</li> 
       <li>Telefax (0314) 37 70 05</li> 
       <li>[email protected]</li> 
      </ul> 
     </li> 
     <li><a class="didam" title="Vestiging Didam" href="vestiging.html">Didam</a> 
      <ul class="didam"> 
       <li><h2>Didam</h2></li> 
       <li>Parallelweg 29</li> 
       <li>Postbus 50</li> 
       <li>6940 BB Didam</li> 
       <li>Telefoon (0316) 22 15 08</li> 
       <li>Telefax (0316) 22 78 30</li> 
       <li>[email protected]</li> 
      </ul> 
     </li> 
    </ul> 
</div> 

Wenn ich über einen li Element schweben. Der ul Artikel wird jetzt angezeigt. Aber jetzt. Ich würde das automatisch machen lassen. Wie kann ich einen Timer für diese Funktion einrichten? Dass alle 5 Sekunden kommen, um einen anderen ("ul", dies) Artikel

Dank

Antwort

1

So:

Beispiel:http://jsfiddle.net/eSk3X/1/

var $subUl = $(".landkaart ul li > ul").hide(); 
$subUl.eq(0).show(); 

var len = $subUl.length; 

var index = 0; 

setInterval(function() { 
    $subUl.eq(index).removeClass('open').fadeOut(function() { 
      index = (++index % len); 
      $subUl.eq(index).addClass('open').fadeIn(); 
     } 
    ); 
}, 5000);