在另一个内部划分,当使用Jquery和IE8在外部div中使用.slideDown()时显示

时间:2011-01-25 15:49:44

标签: jquery zend-framework zend-form ie8-compatibility-mode

上述代码适用于所有浏览器,但在IE8中只适用于兼容模式。我删除了DIV中的所有标记,那里有巨大的TABLE。 在IE8中,当我选中复选框('rf')时,它只显示两个DIVS(#frmRF和#frmAntenas),但它也显示DIV(#frmTX),如果您认为标记不正常,它由Zend_Form生成,我希望我创建的每个复选框都没有隐藏。

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

1 个答案:

答案 0 :(得分:1)

首先对不起,我不知道怎么评论,没有看到任何按钮。 我想我有一段时间有类似的问题,我已经关闭了IE的slidedown。我认为这只是IE无法处理的事情.. 所以我认为你应该尝试一下,看看它是否有效:

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

我相信slideup / down与显示和隐藏内容(“慢”)相同,所以我调整了它。

Lauw

编辑:

当我将它上线并将您的HTML更改为以下内容时,它对我有用:

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

这里的事情是你在div上定义了两次'style',所以它没有抓住显示:none; 评论后编辑回答。 希望这能解决它,

Lauw