SORU
6 Temmuz 2009, PAZARTESİ


Nasıl anlatacak .() vurgulu beklemek?

Bir açılır menü var. Şimdi zaman aşağı kaymış birden çok düzeyleri, hoşuma gider eklemek bekleme süresi gibi 2 saniye önce kaybolur, böylece kullanıcı dönebilir, o zaman sonları .hover() yanlışlıkla.

Mümkün mü?

slayt için benim kod:

$('.icon').hover(function() {
        $('li.icon > ul').slideDown('fast');
    }, function() { 
        $('li.icon > ul').slideUp('fast');
    });

CEVAP
6 Temmuz 2009, PAZARTESİ


Bu ikinci işlevini çalıştırmadan önce 2 saniye (2000 milisaniye) bekletecek:

$('.icon').hover(function() {
    clearTimeout($(this).data('timeout'));
    $('li.icon > ul').slideDown('fast');
}, function() {
    var t = setTimeout(function() {
        $('li.icon > ul').slideUp('fast');
    }, 2000);
    $(this).data('timeout', t);
});

Ayrıca Kullanıcı geri çılgın davranışı engellemek için geldiğinde zaman aşımı temizler.

Bu çok zarif bir şekilde, ancak değildir. Muhtemelen de bu sorunu çözmek için tasarlanmıştır hoverIntent eklentisi, kontrol etmelisiniz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CareyHolzman

    CareyHolzman

    24 Ocak 2008
  • Alexey - servant of Christ

    Alexey - ser

    15 EYLÜL 2007
  • My Name Is Jeff

    My Name Is J

    26 ŞUBAT 2008