Donekonečna vnoření <div> Značky a jQuery

To se jeví jako takové podivíne téma, Nejsem si jistý, že to opravdu stojí blogu, Ale to mě ještě nikdy nevadilo, Tak tady to máme Usměj se

Já pracuji na projektu, kde jsem si nějaké údaje z hledání, balení do XML zprávy a pak že XML je nakonec transformován do HTML pomocí XSLT.  Je o hodně jQuery, jeden bit z nich implementuje funkce procházení.  Když klepnete na kartu (Vážně, a <div>), jQuery vyvolá .hide() a jí Ukažte() na různé značky (načtení úvodní stránku stáhne veškerý obsah, takže v tomto případě neexistují žádné postbacks).

Banda před hodinami, Karta přepínání logiky začali chovat chaoticky a ji ukáže jeden z mé karty.  Nakonec dozvěděl jsem se to dolů k tomu, že aplikace internet explorer (nejméně) Myslel, že <div> značky vnořené daleko, mnohem hlubší než určené.Vývojář nástrojů by ukázal:

-<div id = "Tab1Content">
  -<div>
    -<div>
      -<div id = "Tab2Content">
        -<div>
           …………………………
                   </div>  <— konečně ukazuje byl uzavřen až sem!

Tak, Pokud jsem udělal $("# Tab1Content").Skrýt(), Také by skrýt Tab2 a mohl bych nikdy ukázat Tab2 pokud nechtěl také zobrazit Tab1.  Zkopírovat a vložit kód v aplikaci visual studio a to vše div obložení se ukázal pěkně, stejně jako by měl dělat, Takhle:

-<div id = "Tab1Content">
  +<div>
  +<div>
-<div id = "Tab2Content">
  +<div>
  +<div>

Porazil mou hlavou proti zdi na chvíli a všiml si, že skutečné HTML kódu vytvářel spoustu prázdná <div> značky, jako:

<tělo>

  <div id = "Tab1Content">

    <div id = "row1" />
    <div id = "row2" />

  </div>

  <div id = "Tab2Content">

    <div id = "row1" />
    <div id = "row2" />

  </div>

</tělo>

(Výše uvedené je waaaaaaaaaaaay zjednodušili.  Prázdný div značky jsou naprosto platné. Některé z mého <div> značky byly plné obsahu, Ale mnohem víc.  Přišel jsem k poznání že moje <XSL:pro každý> směrnice byly výstupu zkrácené když značky div xsl:pro každý ne ' najít žádná data.  Donutila komentáře HTML do výstupu, Jak je uvedeno:

image

 

Poté, co jsem to udělal, všechny div zákrytu pěkně a moje karta přepínání začala pracovat.

Jako vždy, Doufám, že to pomůže někdo v nouzi.

</Konec>

Přihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin

Zanech odpověď

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *