2012-07-01 21 views
6

Çok özel bir sorunum var.Tablo satırlarını div veya başka bir şeye yerleştirme ve jQuery fadeIn işlevini kırma nasıl engellenir?

FadeIn, fadeOut işlevlerini kullanarak belirli bir kod eklemek istiyorum, ancak div etiketine katıştırılmış tr ve td etiketlerini kullanıyorum çalışmaz. html

var registrationPart = $('div.registration-part'); 
var loginPart = $('div.login-part'); 

$('span.logreg.log').click (function() { 

       registrationPart.fadeOut("fast"); 
       loginPart.fadeIn("slow"); 

} 

Ve bu:

Bu JS bölümü için kod var tr varsa

<table class="table"> 
    <div class="registration-part"> 
     <tr> 
        <td>registration</td> 
      </tr> 
    </div> 
    <div class="login-part"> 
     <tr> 
        <td>login</td> 
      </tr> 
    </div> 
</table> 

Yani fadeIn, fadeOut div içinde, td etiketleri çalışmıyor. Onları div veya açıklıkla değiştirirsem her şey yolunda gider.

tr, td'den nasıl ayrılacağınız bir yol var, bu yüzden div'ler için belirli bir stil sayfası yapmam gerekmiyor, bu yüzden tr, td gibi görünecek.

Şimdiden teşekkürler.

cevap

18

bunu, ona bekliyoruz nasıl render değil bu yüzden ne var, geçersiz HTML olduğunu. Bir'u <table> içine koyamazsınız ve <tr> öğelerini içerir; Bir'u <td> öğesinin içine dahil edebilirsiniz, ancak bu gerçekten size yardımcı olmaz.

bir tablonun ayrı bölümler tanımlamak istiyorsanız

, <tbody> etiketini kullanın:

HTML

<table class="table"> 
    <tbody class="registration-part"> 
     <tr> 
      <td>registration</td> 
     </tr> 
    </tbody> 
    <tbody class="login-part"> 
     <tr> 
      <td>login</td> 
     </tr> 
    </tbody> 
</table> 

JavaScript

var registrationPart = $('tbody.registration-part'); 
var loginPart = $('tbody.login-part'); 

$('span.logreg.log').click (function() { 
    registrationPart.fadeOut("fast"); 
    loginPart.fadeIn("slow"); 
} 

Eğer orjinali ile this jsFiddle bir göz atacak olursak HTML'yi ve Firebug'la tabloyu denetleyin, öğelerinin befor olduğunu fark edeceksiniz. e tabloyu ve boş ve istediğiniz satırları dahil etmeyin.

+0

Teşekkürler, bu güzel çalışıyor – johnnyb3000

+0

Ben sadece 1 tbody sahip olabileceğini düşünüyordum, ama taht ist doğru değil ve çözümünüz harika çalışıyor;) – johnnyb3000

+0

@ johnnyb3000 Sadece en fazla bir tane var ve bir ' '(ve herhangi bir" "öğesinden önce gelmeleri gerekir), ancak istediğiniz kadar çok sayıda öğeleri olabilir. –

0

Neden masanızın içinde <div> etiketleri kullanıyorsunuz? Bunun yerine <tr> etiketlerini kullanmalısınız.

,

here iyi günler bu Turp deneyin

+0

Lütfen açıklamamı bir kez daha okuyun. Örneğiniz tamamen yanlış. – johnnyb3000

0
$('#selector').click(function() { 
    $('.registration-part').parent().find('td:first').fadeOut('fast'); 
    $('.login-part').parent().find('td:last').fadeIn('slow'); 
}); 
İlgili konular