Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery-停止url锚更改页面位置_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript jQuery-停止url锚更改页面位置

Javascript jQuery-停止url锚更改页面位置,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个文档,其中包含一系列部分,这些部分包含我需要根据URL锚收集的信息 我正在尝试做的示例: URL <div id='information'>Data should be here!</div> <div id='section-1'>This is data from section 1!</div> <div id='section-2'>This is data from section 2!</div>

我有一个文档,其中包含一系列部分,这些部分包含我需要根据URL锚收集的信息

我正在尝试做的示例:

URL

<div id='information'>Data should be here!</div>

<div id='section-1'>This is data from section 1!</div>

<div id='section-2'>This is data from section 2!</div>

<div id='section-3'>This is data from section 3!</div>

<div id='section-4'>This is data from section 4!</div>
div{
    height: 500px;
}
http://mywebsite.com/page.php#section-2

html

<div id='information'>Data should be here!</div>

<div id='section-1'>This is data from section 1!</div>

<div id='section-2'>This is data from section 2!</div>

<div id='section-3'>This is data from section 3!</div>

<div id='section-4'>This is data from section 4!</div>
div{
    height: 500px;
}
jQuery

var hash = window.location.hash;
if(!hash == ""){
    var data = $(hash).text();
    $("#information").text(data);
}
但是当我加载URL时,jQuery工作正常,但是页面跳转到
#section-2

我该如何阻止这种情况发生


提前谢谢

您的条件不正确。应该是
=取而代之

if(hash != ""){
    var data = $(hash).text();
    $("#information").text(data);
}
为了防止跳转,您可以尝试使用
scrollTop()

$(文档).ready(函数(){
var hash=window.location.hash;
if(散列){
$('body')。滚动顶部(0);
}
});
div{
高度:500px;
}

数据应该在这里!
这是第一节的数据!
这是第2节的数据!
这是第3节的数据!

这是第4节的数据我设法找到了修复它的方法
由于某种原因,时间混乱,导致
$('body')。scrollTop(0)不工作

我可以通过在滚动到页面顶部之前添加10毫秒的延迟来修复它。

$(document).ready(function(){
  if(hash){
    setTimeout( function(){ 
      $('body').scrollTop(0);
    }, 10 );
  }
});
$(document).ready(function(){
  if(hash){
    setTimeout( function(){ 
      $('body').scrollTop(0);
    }, 10 );
  }
});

如果页面中存在id=hash的可见div,浏览器将跳转。防止这种情况的一种方法是在css中设置divs display=none,以便在页面加载期间它们不可见,然后在加载之后立即将它们更改为可见

$(function() {
  $('div').show();
});
或者,您可能一次只想显示一个部分

$(function() {
  $('#section-2').show();
});
另一种方法可能是让div保持可见,但立即滚动回页面顶部

$(function() {
  self.scrollTo(0, 0);
});

我设法找到了修复它的方法
由于某种原因,时间混乱,导致
$('body')。scrollTop(0)不工作

我可以通过在滚动到页面顶部之前添加10毫秒的延迟来修复它。

$(document).ready(function(){
  if(hash){
    setTimeout( function(){ 
      $('body').scrollTop(0);
    }, 10 );
  }
});
$(document).ready(function(){
  if(hash){
    setTimeout( function(){ 
      $('body').scrollTop(0);
    }, 10 );
  }
});

我想你误解了这个问题。我不需要帮助收集数据,我需要它来阻止页面跳转到锚。看到编辑,也尝试了。它仍然会跳到锚上。我刚刚试过,它仍然不会跳到顶端。我打开了chrome开发者控制台,运行了
$('body')。scrollTop(0)尽管如此,它还是正确地跳了起来。我使用的完整代码太“过分”,没有完整的示例,但我在源代码页中编辑了我的问题。我尝试过这个,但似乎不起作用。页面仍然跳转到锚。你能添加一个小提琴吗?我将无法摆弄代码。你需要添加一个演示。不幸的是,我需要显示div。我尝试了
self.scrollTo(0,0)