日期:2014-05-16  浏览次数:20416 次

JavaScript函数调用问题
下面的JS在加载prepareInternalnav()函数后,为什么prepareInternalnav()函数里调用不到showSection(id)函数呢???
// JavaScript Document
function showSection(id){
  alert("hi"); //为什么加载后,没有弹出对话框呢???
var divs = document.getElementsByTagName("div");
for(var i=0;i<divs.length;i++){
if(divs[i].className.indexOf("section")==-1) continue;
if(divs[i].getAttribute("id")!=id){
divs[i].style.display = "none";
}else{
divs[i].style.display = "block";
}
}
}
function prepareInternalnav(){
if(!document.getElementsByTagName) return false;
if(!document.getElementById) return false;
if(!document.getElenemtById("internalnav")) return false;

var nav = document.getElementById("internalnav");
var links = nav.getElementsByTagName("a");
for(var i=0;i<links.length;i++){
var sectionId = links[i].getAttribute("href").split("#")[1];
if(!document.getElementById(sectionId))continue;
document.getElementById(sectionId).style.display = "none";
links[i].destination = sectionId;
links[i].onclick = function(){
showSection(this.destination);
return false;
}
}
}

------解决方案--------------------
建议在控制台看下报什么错了
------解决方案--------------------
这段代码没有语法错误,且调用showSection(7);执行成功,所以问题应该是脚本中没有调用showSection函数
------解决方案--------------------
那应该是到达这个函数前的设置代码出了问题了。你得看看。多打印看看。看是不是没有进入到这个函数的调用。
------解决方案--------------------
你这描述这么简单,怎么招也得给个完整的(可以正常调试的)代码啊