页面刷新后div具有不同的宽度

时间:2015-01-21 14:19:06

标签: javascript jquery css joomla2.5

当有人打开页面时,<div>获得全宽(1200px +)。如果我重新加载页面,宽度将更改为右侧(550px)。浏览器清除了缓存,因此这不是缓存问题。

首次访问:  first visit

刷新后: After refresh

这是一个&#34;自定义HTML代码&#34; Joomla 2.5站点中的模块。这是交换宽度的div代码:

<div class="art-nostyle">
<div class="custom">
<div id="script_nn_tabs54bfa417561de" class="script_nn_tabs" style="display:none;"></div>
<div id="nn_tabs_container_1____685___" class="nn_tabs_container outline_handles outline_content align_left nn_tabs_container_1_">
<div class="nn_tabs_nav" style="display: block;"></div>

乍一看,我认为div id="nn_tabs_container_1____685___"是问题,所以我在模块的末尾添加了这个jQuery脚本:

var j = jQuery.noConflict();
j(document).ready(function () {
 j("div[id^='nn_tabs_content_1____']" ).css("width","550px");
});

在无法修复之后,我注意到问题发生在<div class="art-nostyle">。那个div根本没有风格!我无法将上述脚本用于art-nostyle div,因为它是在网站中的每个模块之前添加的。有人可以解释一下这可能不是一个缓存问题 - 在页面刷新后获得固定宽度的元素吗?我试过5台以前从未访问过url的PC。

P.S。我无法在JSFiddle中重现这个问题:这就是为什么我没有发布小提琴链接。

编辑:Link of the site如果有人想亲眼检查。它位于指数的中间位置。 编辑2:我注意到,如果我禁用cookie,div刷新后不会改变宽度。它会保持整个宽度。

2 个答案:

答案 0 :(得分:0)

如果您正在使用jQuery,也许您可​​以删除可能从Joomla继承奇怪样式的“.art-nostyle”类。你可以给一个<div class="art-nostyle">一个唯一的ID(例如id =“navigationLinks”),然后使用它:

$(function() {
    $("#navigationLinks").removeClass("art-nostyle");
    $("#navigationLinks").css("width","550px");
});

您还可以检查是否有任何其他Javascript引用此div,因为有问题的div会仅仅从HTML / CSS继承奇怪的行为,这似乎很奇怪。

答案 1 :(得分:0)

我有同样的问题。但是,我找到了答案。使用$(window).load()而不是$(document).ready()。

另请参阅:window.onload vs $(document).ready()