2010-11-18 20 views
7

Başka bir div fareyle üzerine gelindiğinde, bir div'in görünürlüğünü değiştiren aşağıdaki koda sahibim. Bitti eğer fare dışında çalışıyor ve tekrar tekrar dışarı o anahtarlarla tüm kuyruklar: Bu denedimjQuery mouseover üzerinde geçiş yapar - sıralamayı önler

$(document).ready(function() { 
    $('.trigger').mouseover(function(){ 
     $('.info').toggle(400); 
    }).mouseout(function(){ 
     $('.info').toggle(400); 
    }); 
}); 

, ama buna toggled görünürlüğü ile ilgili sorunlar yaratır (çalışmak için görünmüyor div ve sonuna kadar gösterme)

$(document).ready(function() { 
    $('.trigger').mouseover(function(){ 
     $('.info').stop().toggle(400); 
    }).mouseout(function(){ 
     $('.info').stop().toggle(400); 
    }); 
}); 

Kuyruktan nasıl kurtulurum? .dequeue() fonksiyonu ve .stop() buradan bu konuda

.dequeue().stop() 

Mükemmel makale kullanma

+0

Gerçekten '.info' seçici önbelleğe denemelisiniz. – Stephen

+0

Seçmen Stephen'ı önbelleğe almak için gidiyorsanız, hatta tüm satırı önbelleğe alabilirsiniz .... maalesef bu Dan'a yine de sorusu ile yardımcı olmaz. Bazı insanlar, söz konusu sorunu yanıtlamak için başkalarının kodlarını basitleştirir. Aynı zamanda John-Dan ile aynı fikirdeyim bir kullanıcı olmayı kabul etmemelidir – Blowsie

+0

Sadece 7 sorudan 1'i kabul ettiniz, sorularım üzerine tıkladıktan sonra her soru için seçtiğiniz cevabınızı kabul edersiniz – Blowsie

cevap

13

, bu bilmek istediklerini söyler emin im.

http://css-tricks.com/examples/jQueryStop/

Ayrıca ben kullanırım. Sadece herhangi bir karışıklığı kaydetmek için .toggle() yerine show() and .hide().

Düzenleme:

sorun Güncelleme gerçek, gerçek başka başlamadan önce sona atlar kullanılarak, animasyon isnt bitirme olduğunu.

Example

$('.trigger').mouseover(function() { 
    $('.info').stop(true, true).show(400); 
}).mouseout(function() { 
    $('.info').stop(true, true).hide(400); 
}); 
+0

için bir düzeltme arıyorum Kodu şimdi böyle: $(document).ready(function() { \t $('.trigger').mouseover(function(){ \t \t $('.info').dequeue().stop().show(400); \t }).mouseout(function(){ \t \t $('.info').dequeue().stop().hide(400); \t }); }); Ama yine, bu sadece benim özgün parçamdaki ikinci parçacığımda yaptığım gibi davranır. hala animasyon kuyruğu gibi görünüyor ama gerçekten karıştı ve hiçbir şey gösterir gibi görünüyor – Dan

+0

bu güncelleme sizin için herhangi bir iyi, Dan? – Blowsie

+0

teşekkürler Blowsie benim için yararlı – srini

0

Bu

$(".trigger").hover(function() { $(".info").stop(true).toggle(400); });