Div внутри другого, отображается, когда .slideDown () используется во внешнем div с Jquery и IE8. - PullRequest
0 голосов
/ 25 января 2011

Приведенный выше код хорошо работает во всех браузерах, кроме IE8, где он работает только в режиме совместимости. Я удалил всю разметку внутри DIV, там, где огромные ТАБЛИЦЫ. В 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 Ответ

1 голос
/ 30 марта 2011

Прежде всего, извините, я понятия не имею, как комментировать, не вижу кнопки для этого.Я думаю, что у меня была подобная проблема некоторое время, и я отключил слайд-энд для 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>

Я полагаю, что слайд / вниз делает то же самое, что показ и скрытие вещей(«медленно»), поэтому я настроил это.

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, поэтому он не цепляется за отображение: нет;Отредактированный ответ после комментирования.Надеюсь, что это решит,

Lauw

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...