2016-11-30 69 views
1

我正在使用远程JavaScripts填充我的网站上的两个div。jquery div隐藏不能在第一次加载

<div id="flix-inpage"></div> 

<div id="ccs-inline-content"></div> 

我使用下面的代码来显示只有一个div,如果内容是可用的两个div。我加入这个代码到页面的底部:

$(document).ready(function(){ 
    setTimeout(function() { 
     if ($("#flix-inpage #inpage_responsive").length > 0) { 
      $("#ccs-inline-content").hide(); 
     } else { 
      $("#ccs-inline-content").show(); 
      return false; 
     } 
    }, 2000); 
}); 

我指定了一个CSS类:

#ccs-inline-content{ 
    display: none; 
} 

如果两个DIV有相同的内容

我遇到的问题#ccs-inline-content是不是在第一次加载隐藏。如果我重新加载页面几次然后#ccs-inline-content - hide()踢否则内容是可见的。

我已经尝试了不同的浏览器,但结果相同。

+0

尝试删除setTimeout – Pixelomo

+2

setTimeout只执行一次,在你的情况下2秒后。是否需要比div更长的时间?如果是这样,你可能要考虑setInterval,它会在一个时间间隔内重复运行该函数。 http://www.w3schools.com/jsref/met_win_settimeout.asp –

+0

它隐藏在我眼前 - 由于CSS不是JQuery(因为'setTimeout'在2秒后开始运行)。检查此[Codepen](http://codepen.io/PleaseBugMeNot/pen/QGOmMY) –

回答

0

我测试这段代码,但是工作很好。只是我在此代码

$(document).ready(function(){ 
 
    setTimeout(function() { 
 
     if ($("#flix-inpage").text().length <= 0) { 
 
      $("#ccs-inline-content").show(); 
 
     } else { 
 
      $("#ccs-inline-content").hide(); 
 
     } 
 
    }, 2000); 
 
});
#ccs-inline-content{ 
 
display: none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 

 
<div id="flix-inpage">12</div> 
 

 
<div id="ccs-inline-content">ok</div>

0

如果我理解正确添加的.text()函数,你想#flix-inpage显示,以及#ccs-inline-content被隐藏,除非#flix-inpage是空的。这将做的工作:

$(document).ready(function() { 
    if ($("#flix-inpage").children().length) { 
    $("#ccs-inline-content").hide(); 
    } else { 
    $("#ccs-inline-content").show(); 
    } 
}); 

你需要确保你提到完成其他脚本这个运行之前,所以把这个地方在执行其他两个后,在<body>标签的底部。