在另一个内部的divs,出现在带有jQuery和ie8的外div中时。
-
24-10-2019 - |
题
以上代码在所有浏览器中都很好地工作,除了IE8中仅适用于兼容模式。我删除了Divs内部的所有标记,那里的桌子很大。在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>
解决方案
首先,对不起,我不知道如何发表评论,看不到任何按钮。我认为我有一段时间有类似的问题,我已经关闭了IE的滑动。我认为这只是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的作用与显示和隐藏的内容相同(“慢”),因此我对此进行了调整。
劳
编辑:
当我将其放在网上并将您的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上两次定义“样式”,因此它没有抓住显示:无;评论后编辑的答案。希望这能解决,
劳
不隶属于 StackOverflow