Div all'interno di un altro, si presenta quando .slideDown () viene utilizzato nel div esterno con Jquery e IE8

StackOverflow https://stackoverflow.com/questions/4795597

Domanda

Il codice sopra funziona bene in tutti i browser tranne che in IE8, dove funziona solo in modalità di compatibilità. Ho rimosso tutto il markup all'interno dei div, là dove enormi tavoli. In IE8 quando posso controllare la casella di controllo ( 'RF'), si è dovuto inviarci per mostrare solo due div (#frmRF e #frmAntenas), ma è anche mostra la DIV (#frmTX), se pensate che il markup non è ok, è stato generato da Zend_Form, mi piacerebbe non avere un nascosto per ogni casella di controllo che creo.

 <script>
$('input[name="rf"]').change(function(){
    if($(this).is(':checked')){
        $("#frmRF").show();
        $("#frmAntenas").slideDown();
    }else{
        $("#frmRF").slideUp('slow');
        if(!$('input[name="tx"]').is(':checked'))
            $("#frmAntenas").slideUp('slow');
    }
});
</script>

<TABLE>
<TR>
    <TD>
        <INPUT value=0 type=hidden name=rf ><INPUT id=rf value=1 type=checkbox name=rf> <FONT class=legenda>RF</FONT>
    </TD>
</TR>
</TABLE>

<div id=frmAntenas style="display:none;">
<fieldset> 
<legend>Especificações Técnicas da Solicitante:</legend>

    <div style='margin-top: 10px' id='frmRF' style="display:none;">

    </div>

    <div style='margin-top: 10px' id='frmTX' style="display:none;">

    </div>

</fieldset> 
</div>
È stato utile?

Soluzione

Prima di tutto mi dispiace, non ho idea di come commento, non vede alcun tasto per esso. Penso di aver avuto un problema simile per un po 'e ho spento slideDown per IE. Penso che questo sia solo qualcosa di IE non gestisce molto bene .. Quindi penso che si dovrebbe provare questo e vedere se funziona:

   <script>
    $('input[name="rf"]').change(function(){
    var speed  = $.browser.msie ? 0 : "slow";
        if($(this).is(':checked')){
            $("#frmRF").show();
            $("#frmAntenas").show(speed);
        }else{
            $("#frmRF").hide(speed);
            if(!$('input[name="tx"]').is(':checked'))
                $("#frmAntenas").hide(speed);
        }
    });
    </script>

Credo slideUp / fa giù lo stesso di mostrare e nascondere cose ( "lento"), così ho regolato questo.

Lauw

Modifica:

Ha funzionato per me quando ho messo in linea e cambiato il codice HTML al seguente:

<div id=frmAntenas style="display:none;">
<fieldset> 
<legend>Especificações Técnicas da Solicitante:</legend>

    <div id='frmRF' style="display:none; margin-top: 10px">

    </div>

    <div id='frmTX' style="display:none; margin-top: 10px">

    </div>

</fieldset> 
</div>

La cosa qui è che si stava definendo 'stile' due volte sul div, quindi non ha interferito sopra al display: none; Editted risposta dopo aver commentato. Spero che questo risolve,

Lauw

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top