У меня есть мой код в скрипке выше, после переключения, я пытаюсь увидеть свойство display и удалить класс css, но он всегда показывает "block" с моим предупреждением, но в конечном итоге класс css изменяется на "none", почему отставание здесь? Есть идеи?
alert($('div#main').css('display'));
Эй, я получил ответ на ваш вопрос, как изменить ваш html с приведенным ниже и посмотреть, как он будет работать....
<body>
<button>Toggle 'em</button>
<div id="main">
<p>Hiya</p>
<p>Such interesting text, eh?</p>
</div>
<span class="arr hid">0</span>
<script>
$( "button" ).live('click',function() {
$( "div#main" ).slideToggle( 'medium', function() {
if ($('div#main').is(':visible'))
{
alert($('div#main').css('display'));
$('span.arr').addClass("hid");
}
else{
alert($('div#main').css('display')+" hello");
$('span.arr').removeClass("hid");
}
});
});
Поскольку это свойство не устанавливает свойство display
none
для этого div
вам нужно использовать .toggle()
для div
:
$('div#main').toggle(); // toggle the div instead
alert($('div#main').css('display')); // its none now
Вам нужно проверить display
значение ваших p
элементов, так как это то, что вы используете toggle()
:
alert($('p').css('display'));
См. DEMO.
<p>
elements$( "p" ).toggle( );
но затем вы запрашиваете свойство display содержащего<div>
которое вы не меняете.