jQuery show()函数显示内联块.怎么样?

Gir*_*iri 151 jquery show-hide

我有一些像这样的代码

function switch_tabs(obj) {
    $('.tab-content').hide();
    $('.tabs a').removeClass("selected");

    var id = obj.attr("rel");
    $('#' + id).show();
    obj.addClass("selected");
}
Run Code Online (Sandbox Code Playgroud)

显示功能添加显示:块.但我想添加display:inline-block而不是block.

有人能帮我吗?谢谢

Raz*_*azz 197

而不是show尝试使用CSS来隐藏和显示内容.

function switch_tabs(obj) {
    $('.tab-content').css('display', 'none'); // you could still use `.hide()` here
    $('.tabs a').removeClass("selected");
    var id = obj.attr("rel");

    $('#' + id).css('display', 'inline-block');
    obj.addClass("selected");
}
Run Code Online (Sandbox Code Playgroud)

  • 这看起来很明显,但如果你仍然想利用`show`(`$("#id").show(500)`)的时序方面,只需将`css`函数附加到它:`$(" #id").show(500).css("display","inline-block");` (86认同)
  • 即使这是公认的答案,但它没有反映jquery [docs](http://api.jquery.com/show/)中所述的内容:_这大致相当于调用.css("display","block" "),除了显示属性恢复到最初的状态.如果一个元素的显示值为inline,则隐藏并显示,它将再次显示为inline._因此要有一个默认的`display`,你需要在你的css中添加一个类`display:inline-block; `然后使用元素的id调用`hide()`和`show()`.这是更清晰,更可预测的代码,更容易设计. (9认同)
  • 我会更进一步,使用CSS类来处理所有隐藏/显示,而不是使用jQuery.( '标签内容 ').``$ addClass(' 隐藏'); (...)$('#'+ id).removeClass('hidden');``在CSS中:```.hidden {display:none!important}`` (2认同)

mas*_*gns 34

使用后设置CSS属性.show()应该可行.也许您的目标是HTML页面上的错误元素.

 $('#foo').css('display', 'inline-block');
Run Code Online (Sandbox Code Playgroud)

但是,如果您没有使用任何效果,.show(), .hide()为什么不手动设置这些CSS属性,如:

$('#foo').css('display','none'); 
$('#foo').css('display','inline-block');
Run Code Online (Sandbox Code Playgroud)

  • 请注意,jquery show/hide/toggle会恢复以前的显示值.因此,如果您使用jquery隐藏它,则调用show将起作用. (3认同)

Yur*_*nov 9

在show()或fadeIn()之后使用css(),如下所示:

$('div.className').fadeIn().css('display', 'inline-block');
Run Code Online (Sandbox Code Playgroud)


use*_*903 5

Razz的解决方案适用于.hide().show()方法,但不适用于该.toggle()方法.

根据情况,拥有一个css类.inline_block { display: inline-block; }和调用$(element).toggleClass('inline_block')解决了我的问题.


小智 5

我做到了

function showPanels()  {
    $('.panels').show("slow");
    $('.panels').css('display','inline-block');
}
Run Code Online (Sandbox Code Playgroud)

奇迹般有效.

  • 这是答案还是承认......? (7认同)