更改显示属性将页面滚动到顶部

时间:2012-12-26 09:46:08

标签: javascript html css

我在使用Javascript更改对象显示属性时遇到问题。

我使用mysqlphp数据库中的数据填充表格,并且对于每一行,我根据需要创建DIV display:none属性,我有一个简单的JavaScript函数来显示/隐藏div。 以下cssdiv

display:none; /*initially menu item is hidden*/
position: absolute; /*absolute positioning to float*/
background-color:#fff;
width:230px;
min-height:120px;
right:60px;
border:5px solid #ccc;
text-align:right;
direction:rtl;
padding:10px;
border-radius: 10px 10px 10px 10px; 
-moz-border-radius: 10px 10px 10px 10px; 
-webkit-border-radius: 10px 10px 10px 10px; 

这是javascript:

function showfield (a) {
    document.getElementById(a).style.display = "block";  
}
function hidefield (a) {
    document.getElementById(a).style.display = "none";  
}

该功能有效,div显示在必须的位置,但问题是:

当我调用JavaScript函数显示时,它会显示div但是页面滚动到顶部并且为了看到打开的div我应该向下滚动,因为我的页面是一个报告页面,它可能是一个很长的页面,这个根本不是一件好事!

我无法理解为什么会发生这种情况,有没有办法阻止这种自动滚动?

2 个答案:

答案 0 :(得分:0)

试试这个......

<强> HTML

 <a style="text-decoration:none; color:black;" href="#<?php echo("a".$cntr); ?>" onclick="return showfield(<?php echo($cntr); ?>)"><?php echo($cntr); ?></a>

<强> JAVASCRIPT

function showfield(a){
   document.getElementById(a).style.display = "block";
   return false;
}

答案 1 :(得分:0)

请尝试以下代码为我工作。

<script>
 function showfield(a)
  {
    document.getElementById(a).style.display = "block";  
  }
   function hidefield(a)
  {
      alert(a);
    document.getElementById(a).style.display = "none";  
  }
</script>
<a href="javascript:void(0)" onclick="showfield('myid')">show</a>
<a href="javascript:void(0)" onclick="hidefield('myid');">hide</a>

<div id="myid">test content goes here</div>