2010-04-12 17 views
11

Bir işlevde geçiş yapıp yapmayacağınızı merak ettim() ve fadeIn() bir işlevde kullanılabilir ...jquery tek bir işlevde geçiş yapar ve kaybolur mu?

Bunu işe aldım, ancak sadece ikinci tıklatmanın ardından kayboluyor ... geçiş. .toggle() temelde göstermek/gizlemek geçiş olduğu için

$(document).ready(function() { 

$('#business-blue').hide(); 

    $('a#biz-blue').click(function() { 
    $('#business-blue').toggle().fadeIn('slow'); 
    return false; 
    }); 

// hides the slickbox on clicking the noted link 

    $('a#biz-blue-hide').click(function() { 
    $('#business-blue').hide('fast'); 
    return false; 
    }); 


}); 



    <a href="#" id="biz-blue">Learn More</a> 
     <div id="business-blue" style="border:1px soild #00ff00; background:#c6c1b8; height:600px; width:600px; margin:0 auto; position:relative;"> 
      <p>stuff here</p> 
     </div> 

cevap

3

Sorunuz beni biraz karıştırır, ama fadein var.

$('#business-blue').animate({opacity: 'toggle'}, 800); 

istediğiniz bir başka seçenek slayt yukarı ve böyle .slideToggle() kullanarak aşağı:

Ben en yakın tahmin Eğer animate() kullanarak bunu yapabilirsiniz, bu durumda bir solmaya geçiş öğesini, istememizdir
$('#business-blue').slideToggle('slow'); 
12

Bir dizi işlev arasında geçiş yapmak için toggle() öğesini kullanabilirsiniz. Yani bir öğe fadeIn ve fadeOut her bir tıklama istiyorsanız, bir geçiş kontrol 2 fonksiyonları var: fadeIn ve fadeOut. Şunun gibi: Birisi plugin for this iki yıl önce yazdığı gibi

$('a#biz-blue').toggle(function() { 
    $('#business-blue').fadeIn('slow'); 
    return false; 
    }, 
function() { 
    $('#business-blue').fadeOut('slow'); 
    return false; 
    }); 
+1

http://api.jquery.com/toggle/ – Jonathan

+2

Not: http://jquery.com/upgrade-guide/1.9/# toggle-function-function-removed – Zhihao

1

Çok daha iyi denilen yeni bir fonksiyon yoktur 1.4.4 beri: Sonra

jQuery.fn.fadeToggle = function(speed, easing, callback) { 
    return this.animate({opacity: 'toggle'}, speed, easing, callback); 
}; 

Bunu şu şekilde arayabilirsiniz:

$('#hiddenElement').fadeToggle('fast'); 
+0

Zaten var! :) - http://api.jquery.com/fadeToggle/ – nbrooks

0

Ve Bu yöntem imzası 1.9 ile jQuery çıkarıldığını ry basit

$("a#biz-blue").live('click',function(){ 
    $('#business-blue').slideToggle(200); 
}); 
+0

Özellikle fadeIn() için istedi; slideToggle() zaten var. – GFoley83

İlgili konular