我已经做了很多搜索,无法找到我的问题的答案,所以这里有。
我正在尝试使用this tutorial创建一个幻灯片切换菜单,我收到错误slideoutMenu.animate is not a function
这是有问题的html div:
<div id="corner-button"><a href="#" class="slideout-menu-toggle">myLink</a></div>
<div class="slideout-menu">
<h3><a href="#" class="slideout-toggle">Toggle</a></h3>
<ul>
<li>Add new task</li>
<li>See completed tasks</li>
<li>Go to metrics page</li>
</ul>
</div>
这是我的js函数:
$(document).ready(function(){
$('.slideout-menu-toggle').on('click', function(event){
event.preventDefault();
console.log("in the toggle func");
var slideoutMenu = $(".slideout-menu");
var slideoutMenuWidth = $(".slideout-menu").width();
console.log("width : " + slideoutMenuWidth);
slideoutMenu.toggleClass("open");
if(slideoutMenu.hasClass("open")){
console.log("open....");
slideoutMenu.animate({
left: "0px"
}, 500);
} else {
slideoutMenu.animate({
left: -slideoutWidth
}, 250);
}
});
});
我尝试了很多东西,将上面的内容包含在一个简单的javascript函数中并使用
(function($){
// code here
})
但它们都会导致相同的错误。我在堆栈溢出中发现与此问题相关的问题主要是指导用户使用“动画”代替“动画”,或者确保他们使用jquery obj而不是dom obj。
浏览了很多其他人,但他们只是改变了我已经做过的事情。在firefox和chrome中测试过。
添加控制台日志语句console.log($.fn.jquery);
时,我得到:
3.1.0 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector,-deprecated
感谢。
答案 0 :(得分:100)
您似乎正在使用jQuery 3.1.0的超薄版本,它不包含大部分库。相反,您应该使用完整版本。