Javascript toggle()函数在不传递第二个参数的情况下工作。

Javascript toggle()函数在不传递第二个参数的情况下工作。,javascript,jquery,Javascript,Jquery,嘿,伙计们,我正在构建最简单的下拉菜单,我正在使用一个非常小的Jquery片段,我自己编写了它。不过我有一个小问题。签出我的Jquery代码: $('#r-menu').on('click', function () { $('#menu').toggle(function () { $(this).css({ 'display': 'block' }); }, function () { // $(this

嘿,伙计们,我正在构建最简单的下拉菜单,我正在使用一个非常小的Jquery片段,我自己编写了它。不过我有一个小问题。签出我的Jquery代码:

$('#r-menu').on('click', function () {
    $('#menu').toggle(function () {
        $(this).css({
            'display': 'block'
        });
    }, function () {
        // $(this).css({ 'display' : 'none' }); 
    }); // end toggle
}); 

现在,为什么toggle()在我不添加secound函数的情况下工作。我的代码运行得很好,我的问题是,当我没有明确指定toggle()的第二个参数时,为什么菜单在display:none和display:block之间切换?这将是我的第一个也是最重要的问题

我的第二个问题和更多的补充问题,注意当你点击菜单时,当切换时,菜单从左上角滑入并放大,这种效果是从哪里来的?我没有在任何地方指定slideup()或slidein()?是否有一些内部应用的效果

如果您能解释一下我的困难,我将不胜感激

多谢各位

亚历山大

在jQuery 1.9中删除了,它用于在每次单击元素时调用不同的函数

您正在调用函数,该函数切换元素的显示

$('#r-menu').on('click', function () {
    $('#menu').toggle(); // end toggle
});
演示:

在jQuery1.9中删除了,它用于在每次单击元素时调用不同的函数

您正在调用函数,该函数切换元素的显示

$('#r-menu').on('click', function () {
    $('#menu').toggle(); // end toggle
});

演示:

切换是默认情况下在隐藏和显示状态之间切换元素

在中,目前还没有预期回调的变体。但您仍然可以在动画结尾添加回调,如:

$('#menu').toggle(0, function() {
    // Animation complete.
});

第二部分。默认情况下,动画持续时间为400毫秒(0.4秒)。通过传递选项,您可以更改它的持续时间(0,在我的示例中没有动画,只是隐藏),并且默认情况下,使用jquery的种类动画切换是在隐藏和显示状态之间切换元素

在中,目前还没有预期回调的变体。但您仍然可以在动画结尾添加回调,如:

$('#menu').toggle(0, function() {
    // Animation complete.
});

第二部分。默认情况下,动画持续时间为400毫秒(0.4秒)。通过传递选项,您可以更改它的持续时间(0,在我的示例中没有动画,只是隐藏)并使用jquery对动画进行排序

“为什么toggle()在没有添加secound函数的情况下工作?”该代码确实有第二个函数。jquery.toggle(),因为它切换,它会自动检查元素是否可见。如果它是可见的,则会自动将其设置为不可见,如果它是不可见的,则会自动将其设置为可见。关于动画,它从左上角开始,因为它是该动画的标准。您可以检查它的参数或使用slideToggle()@T.J.Crowder,您好,先生,您好,我是您的超级粉丝,顺便说一句,我对Jquery和JS还不熟悉,刚刚开始学习新的东西:D“为什么toggle()在不添加secound函数的情况下工作?”代码确实有第二个函数。Jquery.toggle(),因为它可以切换,它会自动检查元素是否可见。如果它是可见的,则会自动将其设置为不可见,如果它是不可见的,则会自动将其设置为可见。关于动画,它从左上角开始,因为它是该动画的标准。您可以检查它的参数或使用slideToggle()@T.J.Crowder,您好,先生,您好,我是您的超级粉丝,顺便说一句,我刚开始接触Jquery和JS,刚刚开始学习新东西:Dso u mean toggle()只用于隐藏和显示元素??您的小提琴没有任何动画,为什么我的小提琴在切换时有一个动画?哦,如果传递了一个数值,就会执行一个动画函数。美好的但是在我的小提琴中,我没有传递任何数值。@AlexanderSolonik我想如果传递一个值到toggle,那么动画就会被执行,所以你的意思是toggle()只用于隐藏和显示元素??你的小提琴没有任何动画,为什么我的小提琴在切换时会有动画?哦,如果传递了一个数值,执行动画功能。美好的但在我的小提琴中,我没有传递任何数值。@AlexanderSolonik我想如果传递一个值来切换,动画就会执行