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

  • BiGSH0TROB

    BiGSH0TROB

    7 NİSAN 2011
  • NYCarspotter

    NYCarspotter

    26 EYLÜL 2011
  • Pepsi

    Pepsi

    1 Kasım 2005