Javascript 显示属性有问题
我将在“样式”属性中将div标记的显示设置为“无”,然后将其设置为“基于单击功能显示”。问题是,当我单击on click功能时,它会显示一秒钟,然后再次关闭。请通读一遍,告诉我哪里出了问题Javascript 显示属性有问题,javascript,jquery,html,Javascript,Jquery,Html,我将在“样式”属性中将div标记的显示设置为“无”,然后将其设置为“基于单击功能显示”。问题是,当我单击on click功能时,它会显示一秒钟,然后再次关闭。请通读一遍,告诉我哪里出了问题 <?php error_reporting(0); $val1=0; $irate=0; $node=0; ?> <html> <head> <link href="style.css" /> <style type="text/css
<?php error_reporting(0);
$val1=0;
$irate=0;
$node=0;
?>
<html>
<head>
<link href="style.css" />
<style type="text/css">
#inputdiv
{
-webkit-box-shadow: 3px 3px 14px 7px #d1dcf7;
box-shadow: 3px 3px 14px 7px #d1dcf7;
}
#master
{
-webkit-box-shadow: 3px 3px 14px 7px #d1dcf7;
box-shadow: 3px 3px 14px 7px #d1dcf7;
}
#node
{
-webkit-box-shadow: 3px 3px 14px 7px #d1dcf7;
box-shadow: 3px 3px 14px 7px #d1dcf7;
}
html
{
overflow:hidden;
}
body
{
height:100%;
width:100%;
overflow:hidden;
background:url(images/bg.png);
}
#logo
{
width:100%;
height:20%;
border:0px solid black;
}
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
</head>
<body>
<div id="logo">
<img src="images/white.png" style="width:100px;height:100px;position:relative; left:35em"/>
</div>
<hr style="width:100%; height:1px"></hr>
<form action="byte.php" method="post">
<div id="inputdiv" style="position:absolute; left:29em;top:10em">
<select>
<option value="1">Daily</option>
<option value="2">Yearly</option>
</select>
<table>
<tr><td>Total data</td><td><input type="text" name="tdata"></td></tr>
<tr><td>Growth rate</td><td><input type="text" name="growth"></td></tr>
<tr><td>Duration</td><td><select name="duration">
<option value="1">1 year</option>
<option value="2">2 years</option>
<option value="3">3 years</option>
<option value="4">4 years</option>
<option value="5">5 years</option>
</select>
</td></tr>
<tr><td>Ingestion data</td><td><?php $total=$_POST['tdata'];
$growth=$_POST['growth'];
$duration=$_POST['duration'];
$irate=($total)+($growth*$duration);
echo $irate;
?>
</td></tr>
<tr><td>Raw consumption:</td><td><?php echo $irate*3; ?></td></tr>
<tr><td>Node raw storage:</td><td>24TB</td></tr>
<tr><td>MapReduce temporary space reserve</td><td>25%</td></tr>
<tr><td>Node-usable raw storage</td><td>18TB</td></tr>
<tr><td>1year(flat growth)</td><td><?php $val1=$_POST['irate'];$node=(round(($irate*3)/24)); echo (round(($irate*3)/24))." nodes";?></td></tr>
</table>
<div id="master" style="width:300px;position:absolute; left:15em;top:25em;display:none">
<table border="1" width="100%">
<tr><td>CPU</td><td width="100%"> 2*6 Core 2.9 Ghz/15 MB cache</td></tr>
<tr><td>Memory</td><td width="100%"> 64GB DDR3-1600 ECC</td></tr>
<tr><td>Disk Controller</td><td width="100%"> SAS 6Gb/s</td></tr>
<tr><td>Disks</td><td width="100%"> 12*2/3 TB LFF SATA II 7200 RPM</td></tr>
<tr><td>Network Controller</td><td> 2*1Gb Ethernet</td></tr>
</table>
</div>
<div id="node" style="width:300px;position:absolute; left:35em;top:25em;display:none">
<table border="1" width="100%">
<tr><td>CPU</td><td width="100%"> 2*6 Core 2.9 Ghz/15 MB cache</td></tr>
<tr><td>Memory</td><td width="100%"> 64GB DDR3-1600 ECC</td></tr>
<tr><td>Disk Controller</td><td width="100%"> SAS 6Gb/s</td></tr>
<tr><td>Disks</td><td width="100%"> 12*2/3 TB LFF SATA II 7200 RPM</td></tr>
<tr><td>Network Controller</td><td> 2*1Gb Ethernet</td></tr>
</table>
</div>
<input type="submit" onclick="hideshow()" value="submit">
</div>
</form>
<br>
</body>
<script>
function check(){
var node=<?php echo $node; ?>;
console.log(node);
//document.getElementbyId("master").style.display="";
setTimeout(check,1000);
}
check();
function hideshow()
{
//if(document.getElementById("master").style.display='none')
//{
//$('#master').show();
//}
$("#master").css("display", "block");
var node=<?php echo $node; ?>;
if(node >20)
{
$('#node').show();
}
}
</script>
</html>
#输入div
{
-网络工具包盒阴影:3px 3px 14px 7px#d1dcf7;
盒影:3px 3px 14px 7px#d1dcf7;
}
#主人
{
-网络工具包盒阴影:3px 3px 14px 7px#d1dcf7;
盒影:3px 3px 14px 7px#d1dcf7;
}
#节点
{
-网络工具包盒阴影:3px 3px 14px 7px#d1dcf7;
盒影:3px 3px 14px 7px#d1dcf7;
}
html
{
溢出:隐藏;
}
身体
{
身高:100%;
宽度:100%;
溢出:隐藏;
背景:url(images/bg.png);
}
#标志
{
宽度:100%;
身高:20%;
边框:0px纯黑;
}
每日的
每年
总数据
增长率
期间
一年
两年
三年
4年
五年
摄入数据
原材料消耗量:
节点原始存储:24TB
MapReduce临时空间保留25%
节点可用原始存储容量18TB
1年(平稳增长)
CPU 2*6核2.9 Ghz/15 MB缓存
内存64GB DDR3-1600 ECC
磁盘控制器SAS 6Gb/s
磁盘12*2/3 TB LFF SATA II 7200 RPM
网络控制器2*1Gb以太网
CPU 2*6核2.9 Ghz/15 MB缓存
内存64GB DDR3-1600 ECC
磁盘控制器SAS 6Gb/s
磁盘12*2/3 TB LFF SATA II 7200 RPM
网络控制器2*1Gb以太网
函数检查(){
var节点=;
console.log(节点);
//document.getElementbyId(“master”).style.display=“”;
设置超时(检查,1000);
}
检查();
函数hideshow()
{
//if(document.getElementById(“master”).style.display='none')
//{
//$('#master').show();
//}
$(“#主控”).css(“显示”、“块”);
var节点=;
如果(节点>20)
{
$(“#节点”).show();
}
}
好吧,我的直觉在向我尖叫
第一点:
我假设您在某处有一个onclick处理程序,它直接调用hideshow()
?即使没有,也没关系,关键是你把它放在了submit
按钮上
我猜您正在单击submit按钮,您的div出现,然后页面刷新,您的元素似乎再次消失
在事件函数中,现在假设它是hideshow()
,将事件信息作为参数传递,然后preventDefault
。这将停止submit
按钮执行其默认行为(提交表单)
第二点:
如果您有一个名为“hideshow()”的函数,也就是说,它隐藏并显示一个元素(同时查看注释代码作为更多的证据),那么我认为您应该使用jQuerytoggle()
<代码>切换将隐藏可见的内容(显示:无
),或显示不可见的内容(显示:块
)
因此,改变:
$("#master").css("display", "block");
致:
jQuery切换:
第三点:
我做了大量的直觉挖掘、自我反省和侦探工作来提供这个答案。如果这是正确的,那么这一切都要归功于运气和良好的假设。我相信在您的问题中,您还可以做一些其他的事情,以便在以后的问题中让我们更轻松。我没有看到单击功能onClick事件处理程序在哪里?调用hideshow()的位置?在何处触发click event节点id在何处?请查看div标记保存在表单标记中,并且单击submit按钮时触发click事件。我希望submit按钮执行其操作na,那么我为什么要阻止它?只需检查我的编辑就可以看到全部内容code@Jace你的第一点看起来是正确的,尤其是现在OP提供了更多code@jibindcruz我已经查过你的密码了。提交按钮刷新页面/导航到新页面(通过GET/POST请求过程)。因此,要么希望元素显示并保持打开状态,要么希望刷新页面。你不能两者都做。除非将变量发布到下一页并动态设置
#master
是否可见。但这超出了这个问题的范围。您的问题是关于显示
属性的,我相信我已经为您解决了这个问题。
$("#master").css("display", "block");
$("#master").toggle();