Divs l'intérieur de l'autre, se manifeste lorsque .slideDown () est utilisée dans la div extérieure avec Jquery et IE8

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

Question

Le code ci-dessus fonctionne bien dans tous les navigateurs sauf dans IE8 où il ne fonctionne que dans le mode compatibilité. J'ai supprimé toutes les balises à l'intérieur des DIVs, là où d'énormes tableaux. Dans IE8 quand je vérifie la case à cocher ( « RF »), il est suposed de montrer que deux DIVS (#frmRF et #frmAntenas), mais il est aussi montrant la DIV (#frmTX), si vous pensez que le balisage est pas correct, il a été générée par Zend_Form, je voudrais ne pas avoir un caché pour chaque case que je crée.

 <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>
Était-ce utile?

La solution

Tout d'abord désolé, je n'ai pas la moindre idée comment commentaire, ne voient pas le bouton pour elle. Je pense que j'ai eu un problème similaire pendant un certain temps et je l'ai désactivé slideDown pour IE. Je pense que cela est juste quelque chose que IE ne gère pas trop .. Donc, je pense que vous devriez essayer et voir si cela fonctionne:

   <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>

Je crois que slideUp / fait sur la même chose que montrer et cacher des choses ( « lent »), donc je me suis ajusté que.

Lauw

Edit:

Il a travaillé pour moi quand je l'ai mis en ligne et changé votre code HTML à ce qui suit:

<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 chose est que vous définissiez le « style » deux fois sur la div, il n'a pas pris à l'écran: none; Editted réponse après avoir commenté. Espérons que cela résout,

Lauw

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top