изменить поведение slideToggle () для отображения:inline-block вместо display:block?
цель slideToggle() div должен быть display:inline-block
вместо display:block
когда он открыт. Есть ли способ изменить поведение jquery здесь?
Edit:
на данный момент я использую jQuery 1.7.0. Кроме того,<div>
изначально display:none
и расширяться до display:inline-block
после нажатия на ссылку; но, по-видимому, состояние по умолчанию для slideToggle () в этой ситуации display:block
...
4 ответов
маленькая птичка сказала мне...
$('#my-block').slideToggle('medium', function() {
if ($(this).is(':visible'))
$(this).css('display','inline-block');
});
просто попробуйте скрыть свой блок с помощью скриптов (dont display:none
через стили)
HTML-код
<div class="ib">inline-block</div> <a href="#" class="toggle">toggle this</a>
в CSS
.ib{
display:inline-block;
background:red;
}
JavaScript
$(".ib").hide();
$(".toggle").bind("click", function(){
$(".ib").slideToggle();
return false;
})
Если вы обнаружите, что видите нежелательную "вспышку неустановленного контента", вы также можете использовать встроенный стиль. Обычная мудрость "Не ставьте стиль inline" действительно предназначена для вашего основного стиля, а не для визуальных эффектов (все эффекты JS просто добавляют встроенные стили в конце концов).
конечно, содержимое не будет видно пауками поисковой системы JS-disabled, если это важно. Если это не важно, ты молодец!
обновление скрипку @fliptheweb по : http://jsfiddle.net/GregP/pqrdS/3/