2013-12-14 130 views
1

我试图做一个菜单控制的内容滑块。 Div元素将被放置在包装中,并且我正在使用脚本改变其位置。请检查下面的代码JQuery控制台错误

jQuery(document).ready(function() { 
    function goto(id){ 
     jQuery(".contentbox-wrapper").animate({"left": -(jQuery(id).position().left)}, 600); 
    } 
}); 

和HTML其中函数调用的是,

<li><a href="#" onClick="goto('#homePage', this); return false">Home</a></li> 

<li><a href="#" onClick="goto('#aboutPage', this); return false">About</a></li> 

和内容的div就像

<div class="contentbox-wrapper"> 
    <div id="homePage" class="contentBox"> 
     content here 
    </div> 
    <div id="aboutPage" class="contentBox"> 
     content here 
    </div> 
</div> 

的问题是,当我点击菜单项我得到这个错误

“Uncaught ReferenceError:goto is not defined”

请帮忙..

+2

内联处理程序找到函数的唯一方法是它是否是全局函数。你的本地定义为'.ready()'回调。把它移到外面。没有必要等待DOM准备好声明你的函数。 –

+0

此外,'goto'名称可能无法用于浏览器,因为在ECMAScript 3中它是一个保留字。 –

+0

为什么不绑定到jQuery DOM就绪范围内的click事件而不是使用onClick? –

回答

1

你应该把goto函数放在文档就绪事件处理函数之外。 另外你的函数只接受一个参数,但你每次调用它时都使用两个参数(不是这种情况,只是没有多大意义)。

0

当您在链接的onclick属性中引用它时传递了goto两个参数,但在其定义中它只接受一个参数id。

+3

虽然你是正确的,但它在JavaScript中是无害的。 –