Javascript 当显示元素设置为“无”时,如何避免屏幕自动滚动
我尝试在单击特定单元格时隐藏表的特定行。但是,当目标行块被隐藏时,屏幕会自动滚动到页面顶部。主单元格可单击并允许隐藏以下关联单元格。我的桌子很大,它们是多个可点击的单元格 以下是我的代码的简单版本:Javascript 当显示元素设置为“无”时,如何避免屏幕自动滚动,javascript,scroll,show-hide,Javascript,Scroll,Show Hide,我尝试在单击特定单元格时隐藏表的特定行。但是,当目标行块被隐藏时,屏幕会自动滚动到页面顶部。主单元格可单击并允许隐藏以下关联单元格。我的桌子很大,它们是多个可点击的单元格 以下是我的代码的简单版本: <tr id="Main1" onclick="hideTr(this.id)"><td><a href="#">Main1</a></td></tr> <tr class = "main1Tr"><t
<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";}
}
}
}
第1单元
细胞2
第三单元
第四单元
函数hideTr(id){
如果(id==“Main1”){
加载=document.getElementsByClassName(“main1Tr”);
对于(变量i=0;i
您忘记了单击onclick
处理程序(不在hideTr
内,这将不起作用)。这应该可以解决问题。单击后必须返回false
请尝试onclick=“hideTr(this.id);return false”hashchange:对不起,我键入相同的答案时,您似乎回答了这个问题