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

  • Amazon Web Services

    Amazon Web S

    8 NİSAN 2009
  • Phandroid

    Phandroid

    26 Ocak 2009
  • TWiT Netcast Network

    TWiT Netcast

    27 EKİM 2005