我在jquery toggle函数中看到了多个函数,但我无法理解它们的执行流程。即使jquery官方网站上没有任何文档。
这是功能: -
$('#menu-toggle').toggle(
function() {
console.log('toggle 1 fn');
$('body').addClass('left-side-collapsed').removeClass('sidebar-colors');
$('#sidebar .slimScrollDiv').css('overflow', 'initial');
$('#sidebar .menu-scroll').css('overflow', 'initial');
}, function() {
console.log('toggle 2 fn');
$('body').removeClass('left-side-collapsed')
$('#sidebar .slimScrollDiv').css('overflow', 'hidden');
$('#sidebar .menu-scroll').css('overflow', 'hidden');
}
);
答案 0 :(得分:2)
用于获取多个参数的toggle()
方法,每个参数都是一个函数,它将在单击元素时依次执行。
从jQuery 1.8开始,这个模式现已被弃用,从1.9开始,它已完全从源代码中删除。要复制它,您需要检查元素上当前的类并自行切换,如下所示:
$('#menu-toggle').click(function() {
if ($('body').hasClass('left-side-collapsed')) {
$('body').removeClass('left-side-collapsed')
$('#sidebar .slimScrollDiv, #sidebar .menu-scroll').css('overflow', 'hidden');
} else {
$('body').addClass('left-side-collapsed').removeClass('sidebar-colors');
$('#sidebar .slimScrollDiv, #sidebar .menu-scroll').css('overflow', 'initial');
}
});
或者,您可以使用original source code自己将以前的toggle()
实现添加回jQuery。但请注意,这是未经测试和过时的,可能会干扰其他方法,或依赖于不再存在的方法。