当我尝试将jquery用于切换功能时,我收到此错误
未捕获的TypeError:undefined不是函数
当我第一次点击div时,它会从左到右显示然后抛出此错误,它将停在那里。当我再次点击时它不会隐藏。这是我正在使用的代码。
$(function () {
$("#slideMenuHeader").click(function () {
//$("#cbp-spmenu-s1").slideToggle("slow");
var anim = "slide";
var duration = 500;
var options = { direction: 'left' };
$("#cbp-spmenu-s1").toggle(anim, options, duration);
});
});
如果我使用没有选项对象和持续时间的切换它工作正常。但我想从左到右切换。为什么我收到此错误?
我正在使用JQuery 1.10.2
答案 0 :(得分:1)
试试这个:
1 GT;您还必须包含jQuery UI
。
$(".myButton").click(function () {
// Set the effect type
var effect = 'slide';
// Set the options for the effect type chosen
var options = { direction: $('.mySelect').val() };
// Set the duration (default: 400 milliseconds)
var duration = 500;
$('#myDiv').toggle(effect, options, duration);
});
2 - ;您也可以jQuery UI
执行此操作:
工作示例 JSFIDDLE
答案 1 :(得分:1)
如果查看the jquery docs,toggle()最多可使用以下格式的三个可选参数
.toggle( [duration ] [, complete ] )
.toggle( options )
.toggle( duration [, easing ] [, complete ] )
在你的代码中,你传递了三个参数,所以jquery认为你传递的是一个持续时间,一个缓动函数和一个在完成时触发的回调。
但是你传递的是一个选项对象,而不是一个缓动函数。这就是我猜它错误的原因。您需要做的是使用第二种格式,并传递一个选项对象,其中包含持续时间和方向的属性。
答案 2 :(得分:-2)
要使用所有动画,您需要将jQuery UI
与effects
如果您不想使用jQuery UI,可以使用以下代码进行简单的toggle
$("#cbp-spmenu-s1").toggle(200); //use anim, options, duration to pass arguments