gpt4 book ai didi

javascript - 侧边栏和标题在 IE9 上无法正确呈现

转载 作者:行者123 更新时间:2023-11-28 09:33:20 26 4
gpt4 key购买 nike

我有一个 2 列布局页面,带有侧边栏和网格。

侧边栏包含过滤器,当用户单击过滤器时,会发出 ajax 请求,并使用新数据更新网格(仅重新创建网格)。

在所有浏览器上一切都很完美,但在 IE9 上,每次用户单击过滤器时,侧边栏和标题都无法正确呈现(标题消失,侧边栏部分可见)。

之前:

enter image description here

之后:

enter image description here

我发现调整窗口大小会有所帮助,因此我编写了一个 js 函数,每次用户在 IE9 上进行筛选时都会调整窗口大小:

var isResized = false;
//Solves a bug with IE rendering where the header dissappears after filtering
function resizeWindow(){
if ( $.browser.msie)
{
isResized = true;
window.resizeTo(window.outerWidth,window.outerHeight - 10);
}
}

//Solves a bug with IE rendering where the header dissappears after filtering
$(window).resize(function(){
try{
//this will only be true if the resize was made by the script, if a user resized
//the browser this would e false and nothing will happen
if(isResized){
isResized = false;
window.resizeTo(window.outerWidth,window.outerHeight + 10);
}
}
catch(err){}
});

问题是它有时有效有时无效。有没有更好的办法?是否可以用JS重新渲染页面?

侧边栏 HTML 片段:

<section>
<div id ="mySelections" class="selection">
<h3>
<label I18N="MY_SELECTION"></label>
<span></span>
</h3>
<a href="#" id="clearAll" data-role="button" data-theme="g" I18N="CLEAR_ALL"></a>
<ul id="filterList">
<li class="status">
</li>
<li class="serviceFilter">

</li>
<li class="favorites">

</li>
</ul>
<!-- end .status -->
</div>
<!-- end .selection -->
<div class="contractsSummary">
<h3 I18N="CONTRACTS_LIST_SERVICES_TITLE"></h3>
<div id="status" data-type="int" data-operator="eq" >
<p id ="red" class="filter">
<label data-color="red" data-col="ServiceComplianceCurrentPeriod/Severity" data-val="1" I18N="STATUS_RED"></label>
<span class="circle red"></span>
<span class="quantity"></span>
<span class="percentage" ></span>
</p>
<p id = "yellow" class="filter">
<label data-color="yellow" data-col="ServiceComplianceCurrentPeriod/Severity" data-val="2" I18N="STATUS_YELLOW"></label>
<span class="circle yellow"></span>
<span class="quantity"></span>
<span class="percentage"></span>
</p>
<p id="green" class="filter">
<label data-color="green" data-col="ServiceComplianceCurrentPeriod/Severity" data-val="3" I18N="STATUS_GREEN"></label>
<span class="circle green"></span>
<span class="quantity"></span>
<span class="percentage"></span>
</p>
<!--<p id="all" class="filter">
<label data-color="" data-col="" data-val="" I18N="ALL"></label>
<span></span>
</p>-->
</div>
<!-- end #status -->
<div id="favorites" data-type="favorite" data-operator="eq">
<p class="filter">
<label data-num="" data-col="Id" I18N="FAVORITES"></label>
<span></span>
</p>
</div>
</div>
<!-- end .contractsSummary -->
<div class="filters">
<ul>
<li>
<div data-role="fieldcontain" class="textFilter" id="serviceFilter" data-col="Name" data-type="string" data-operator="eq" data-text="COLUMN_HEADER_SERVICE">
<input placeholder="" data-type="search" class="filter" value="" I18N="FILTER_ITEMS" id="service-search"/>
</div>
<!-- end #textFilter -->
</li>
</ul>
</div>
<!-- end .filters -->
</section>

最佳答案

找到了:)

我需要做的就是隐藏它然后再次显示它:

$('section').hide();
$('section').show();

关于javascript - 侧边栏和标题在 IE9 上无法正确呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13449932/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com