首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery .show()将显示“style=:inline-block”添加到元素

jQuery .show()将显示“style=:inline-block”添加到元素
EN

Stack Overflow用户
提问于 2013-03-29 02:55:08
回答 2查看 29.1K关注 0票数 9

我在一个我工作时继承的网站上工作,这个网站使用进度条/标签显示捐赠进度。大多数名单将有9年(例如1990-1999年),但最后一个名单有13年(2000-2012)。因此,我有一个显示/隐藏各个元素的javascript函数showHiddenBars()

在第一次加载时,所有内容都正确显示(默认情况下显示2000-2012),但在隐藏它们然后显示它们之后,它会扰乱布局。从我通过Google Chrome的检查器可以看出,当使用.show()函数时,它会将style="display: inline-block"添加到包含标签的span元素中。我正在使用jQuery UI的clip easing效果和显示和隐藏功能。

如何阻止.show添加style="display: inline-block;

完整的Javascript:http://pastebin.com/ZmbQqwWF

完整超文本标记语言:http://pastebin.com/mf6W1ahF

示例站点:http://kirsches.us/3000Strong/decadeProgress.html

javascript:

代码语言:javascript
复制
function showHiddenBars() {
    "use strict";
    //show the bars we aren't using.
    $('#decade10').show("clip");
    $('#decade11').show("clip");
    $('#decade12').show("clip");
    $('#decade13').show("clip");
    $('#decade10label').show("clip");
    $('#decade11label').show("clip");
    $('#decade12label').show("clip");
    $('#decade13label').show("clip");
    $('#decade10AmountGiven').show("clip");
    $('#decade11AmountGiven').show("clip");
    $('#decade12AmountGiven').show("clip");
   $('#decade13AmountGiven').show("clip");
}
function hideHiddenBars() {
   "use strict";
    //hide the bars we aren't using.
    $('#decade10').hide("clip");
    $('#decade11').hide("clip");
    $('#decade12').hide("clip");
    $('#decade13').hide("clip");
    $('#decade10label').hide("clip");
    $('#decade11label').hide("clip");
    $('#decade12label').hide("clip");
    $('#decade13label').hide("clip");
    $('#decade10AmountGiven').hide("clip");
    $('#decade11AmountGiven').hide("clip");
    $('#decade12AmountGiven').hide("clip");
    $('#decade13AmountGiven').hide("clip");
}

HTML:

代码语言:javascript
复制
<div id="decadeProgressContainer">
    <span class="titleFontNoBorder" id="decade1label">2000</span>
    <div id="decade1" class="progressBarSpacingTop"></div>
    <span id="decade1AmountGiven">$130,000</span><br />

    <span class="titleFontNoBorder" id="decade2label">2001</span>
    <div id="decade2" class="progressBarSpacing"></div>
    <span id="decade2AmountGiven">$130,000</span><br />

    <span class="titleFontNoBorder" id="decade3label">2002</span>
    <div id="decade3" class="progressBarSpacing"></div>
    <span id="decade3AmountGiven">$130,000</span><br />

    <span class="titleFontNoBorder" id="decade4label">2003</span>
    <div id="decade4" class="progressBarSpacing"></div>
    <span id="decade4AmountGiven">$130,000</span><br />

    <span class="titleFontNoBorder" id="decade5label">2004</span>
    <div id="decade5" class="progressBarSpacing"></div>
    <span id="decade5AmountGiven">$130,000</span><br />

    <span class="titleFontNoBorder" id="decade6label">2005</span>
    <div id="decade6" class="progressBarSpacing"></div>
    <span id="decade6AmountGiven">$130,000</span><br />

    <span class="titleFontNoBorder" id="decade7label">2006</span>
    <div id="decade7" class="progressBarSpacing"></div>
    <span id="decade7AmountGiven">$130,000</span><br />

    <span class="titleFontNoBorder" id="decade8label">2007</span>
    <div id="decade8" class="progressBarSpacing"></div>
    <span id="decade8AmountGiven">$130,000</span><br />

    <span class="titleFontNoBorder" id="decade9label">2008</span>
    <div id="decade9" class="progressBarSpacing"></div>
    <span id="decade9AmountGiven">$130,000</span><br />

    <span class="titleFontNoBorder" id="decade10label">2009</span>
    <div id="decade10" class="progressBarSpacing"></div>
    <span id="decade10AmountGiven">$130,000</span><br />

    <span class="titleFontNoBorder" id="decade11label">2010</span>
    <div id="decade11" class="progressBarSpacing"></div>
    <span id="decade11AmountGiven">$130,000</span><br />

    <span class="titleFontNoBorder" id="decade12label">2011</span>
    <div id="decade12" class="progressBarSpacing"></div>
    <span id="decade12AmountGiven">$130,000</span><br />

    <span class="titleFontNoBorder" id="decade13label">2012</span>
    <div id="decade13" class="progressBarSpacing"></div>
    <span id="decade13AmountGiven">$130,000</span>
</div>
<!--end div #decadeProgressContainer-->
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-29 03:03:18

按照您想要的方式显式设置可见性的样式:不要依赖hide()和show():

代码语言:javascript
复制
element.css('display', 'none'); equivalent of hide()
element.css('display', 'inline-block'); equivalent of show()
element.css('display', 'block'); What you want
票数 15
EN

Stack Overflow用户

发布于 2013-03-29 03:02:41

我认为如果元素的默认样式是inline,那么它将添加inline-block,至少对于select下拉菜单,它还会添加inline-block。如果需要添加块,则使用.css

代码语言:javascript
复制
$('#el').css('display','block');

您仍然可以使用.hide()来隐藏,这不需要更改

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15689966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档