Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.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 第页没有';t在正确的位置加载;jquery代码怎么用呢?_Javascript_Jquery_D3.js - Fatal编程技术网

Javascript 第页没有';t在正确的位置加载;jquery代码怎么用呢?

Javascript 第页没有';t在正确的位置加载;jquery代码怎么用呢?,javascript,jquery,d3.js,Javascript,Jquery,D3.js,我有一个带有d3.js图表的页面,该图表根据片段标识符加载某一年的数据,例如/graph#2014或/graph#2013,等等。页面加载时,jquery代码触发一个按钮按下,该按钮依次呈现一个包含相应数据的图表。下面是触发所有这些的代码: function yearHash() { if (location.hash === "") { $("#<%= Date.today.year %>").click(); } else if (location.

我有一个带有
d3.js
图表的页面,该图表根据片段标识符加载某一年的数据,例如
/graph#2014
/graph#2013
,等等。页面加载时,jquery代码触发一个按钮按下,该按钮依次呈现一个包含相应数据的图表。下面是触发所有这些的代码:

 function yearHash() {
   if (location.hash === "") {
     $("#<%= Date.today.year %>").click();
   }
   else if (location.hash === "#2014") {
     $("#2014").click();
   }     
   else if (location.hash === "#2013") {
     $("#2013").click();
   }
   else if (location.hash === "#2012") {
     $("#2012").click();
   }
 }

 window.onhashchange = yearHash;
 window.onload = yearHash;
函数yearHash(){
如果(location.hash==“”){
$(“#”)点击();
}
else if(location.hash==“#2014”){
美元(“#2014”)。单击();
}     
else if(location.hash==“#2013”){
$(“#2013”)。单击();
}
else if(location.hash==“#2012”){
$(“#2012”)。单击();
}
}
window.onhashchange=yearHash;
window.onload=yearHash;

问题是,每当加载带有特定哈希的页面时,它都会向下滚动一段时间,然后再向上滚动。我不确定是什么引起的。它不是交易破坏者,但令人恼火。

发生这种情况是因为当您有
#2012
时,它会导致浏览器滚动到
id所在的第一个元素=“2012
使用类而不是散列。还有,为什么不直接从
if
语句调用绘图代码,而不是通过单击按钮来传递它呢。

您可以发布其余代码吗?谢谢。这就解决了问题。通过按钮点击的原因是按钮将被突出显示(通过CSS开关)以指示选择的年份。您仍然可以使用类。