仅在隐藏的div(显示:无)处于活动状态时运行脚本

时间:2018-09-14 13:26:14

标签: javascript jquery html html5 css3

仅当隐藏的div(显示:无)处于活动状态时,我才需要运行脚本。

当按下“ radio button”(单选按钮)时,使用伪造的加载器显示“ div1”,并在3秒钟后显示另一个名为“ my_div”的div。

但是,如果用户不按“单选按钮”,则仍会出现“ my_div”上的随机文本。

我需要解决此问题,如果用户按下单选按钮,则仅显示此随机文本“ my_div”。因此,当用户使用伪造的加载程序按“单选按钮”显示“ div1”,并在3秒钟后显示另一个div(已经工作)时,如果不按该按钮,则什么也不会发生(不要运行随机脚本)。

工作: https://jsfiddle.net/zto6gv1c/3/

这是我的项目:

function show1() {
  document.getElementById('div1').style.display = 'none';
}

function show2() {
  document.getElementById('div1').style.display = 'block';
}

var r_text = new Array();
r_text[0] = "Disponível";
r_text[1] = "Indisponível";
r_text[2] = "Disponível";
r_text[3] = "Indisponível";
r_text[4] = "Disponível";
r_text[5] = "Disponível";
r_text[6] = "Indisponível";
r_text[7] = "Disponível";
r_text[8] = "Indisponível";
r_text[9] = "Disponível";
r_text[10] = "Indisponível";
r_text[11] = "Disponível";
var i = Math.floor(7 * Math.random())

document.write(r_text[i]);

window.onload = function() //executes when the page finishes loading
{
  setTimeout(func1, 3000); //sets a timer which calls function func1 after 2,000 milliseconds = 2 secs.

};

function func1() {
  document.getElementById("my_div").className = "show";
}
.hide {
  display: none;
}

p {
  font-weight: bold;
}

.show {
  display: block;
  position: absolute;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<p>Deseja chegar a disponibilidade do produto?</p>

<input type="radio" name="tab" value="igottwo" onclick="show2();" /> Sim

<div id="div1" class="hide">CHECANDO</div>

<div id="my_div" class="hide"></div>

1 个答案:

答案 0 :(得分:0)

好吗,何时类隐藏不显示任何内容-您要运行其他代码?

您可以通过以下方式查看可见性:

var isVisible = document.getElementsByClassName("hide")[0].style.display == "block";
if(isVisisble){
   this thing is hiden
}else{
   this thing is not hiden
}

我们使用getElementsByClassName是因为您将其放在名称为“ hide”的类上-仅存在这些元素之一,因此我们使用[0]获取第一个(唯一的)元素,然后使用样式。显示以检查值。