【问题标题】:How to avoid screen automatic scrolling when display element is set to none显示元素设置为无时如何避免屏幕自动滚动
【发布时间】:2015-11-18 10:33:33
【问题描述】:

我尝试在单击特定单元格时隐藏表格的特定行。但是,当目标行块被隐藏时,屏幕会自动滚动到页面顶部。主单元格是可点击的,并允许隐藏以下关联的单元格。我的表格很大,它们是多个可点击的单元格。

这是我的代码的简单版本:

<tr id="Main1" onclick="hideTr(this.id)"><td><a href="#">Main1</a></td></tr>
    <tr class = "main1Tr"><td>Cell1</td>
    </tr>
    <tr class = "main1Tr"><td>Cell2</td>
    </tr>
<tr id="Main2" onclick="hideTr(this.id)"><td><a href="#">Main2</a></td></tr>
        <tr class = "main2Tr"><td>Cell3</td>
        </tr>
        <tr class = "main2Tr"><td>Cell4</td>
        </tr>

function hideTr(id){
if(id=="Main1"){
    loading = document.getElementsByClassName("main1Tr");
        for (var i = 0; i < loading.length; i++){
            display = loading[i].style.display;
            if(display ==  "none"){loading[i].style.display="";}
            if(display ==  ""){loading[i].style.display="none";}
        }
    }
if(id=="Main2"){
        loading = document.getElementsByClassName("main2Tr");
            for (var i = 0; i < loading.length; i++){
                display = loading[i].style.display;
                if(display ==  "none"){loading[i].style.display="";}
                if(display ==  ""){loading[i].style.display="none";}
            }
        }
}

【问题讨论】:

    标签: javascript scroll show-hide


    【解决方案1】:

    你必须返回 false onclick 试试 onclick="hideTr(this.id);return false"

    【讨论】:

    • hashchange :对不起,但我输入相同的答案时,您似乎回答了问题
    【解决方案2】:

    您在onclick 处理程序中忘记了to return false;(不在hideTr 中,这是行不通的)。那应该可以解决它。

    【讨论】:

      猜你喜欢
      • 2021-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多