我正在使用jQuery slideToggle来显示隐藏的表格行,但它将显示样式设置为阻止,我需要显示表格行。任何想法我怎么能做到这一点?
提前致谢
答案 0 :(得分:5)
我找到了解决这个问题的方法 - 检查显示器是否已设置为阻止(如果元素已被切换显示),如果设置为所需的显示类型。
$('a.btn').on('click', function() {
$('div.myDiv').slideToggle(200, function() {
if ($(this).css('display') == 'block') $(this).css('display', 'table-row'); // enter desired display type
});
});
答案 1 :(得分:3)
inorganik的解决方案几乎正常运作。但您还需要设置step
回调以将block
更改为table-row
。
$('row-selector-here').slideToggle({
duration: 'fast',
step: function() {
if ($(this).css('display') == 'block') {
$(this).css('display', 'table-row');
}
},
complete: function() {
if ($(this).css('display') == 'block') {
$(this).css('display', 'table-row');
}
}
});
答案 2 :(得分:2)
您可以使用回调来更改此
$('#tableRowId').slideToggle( function(){
$(this).css('display', 'table-row');
});
答案 3 :(得分:0)
这是一个众所周知的bug(也是here)。使用jQuery slideToggle
。没有任何方法可以使用slideToggle
并正确保留显示样式。您可以在动画完成时使用回调应用显示样式,但这可能无法达到您想要的效果。
答案 4 :(得分:0)
只需将此代码添加到回调函数
即可 $(this).css('display','');
答案 5 :(得分:0)
只需在CSS中将其默认设置为
.block { display: table }
然后在加载页面时可以将其向上滑动
$(document).ready(function () {
$('.btn').click(function(){
$('.block').slideToggle();
})
$('.block').slideUp();
});
下次滑动时,它会显示display:table。