0 javascript jquery addclass next removeclass
我真的想知道为什么使用function(next)和next()在下面的代码中很重要.没有next()你只能.open-sidebar通过单击添加它一次删除它.header__menu__button--profile.
我以为next()用来选择元素的以下兄弟!
为什么.open-sidebar每次点击都需要它来删除课程.sidebar__top__button--close?
$('.header').on('click','.header__menu__button--profile',function(){
$('.sidebar').addClass('open-sidebar');
});
$('.sidebar').on('click','.sidebar__top__button--close',function() {
if($('.sidebar').hasClass('open-sidebar'))
{
$('.sidebar').delay(300).queue(function(next){
$('.sidebar').removeClass('open-sidebar');
next();
});
}
});
Run Code Online (Sandbox Code Playgroud)
在这种情况下,next是jQuery传递给回调的参数,该.queue回调是对动画队列中下一个函数的引用.
这与.next()从jQuery集合中选择下一个兄弟元素的函数无关.
它是在内部使用的,.queue因为一旦你做了你需要做的事情,你必须告诉jQuery处理剩余的动画队列,即:
.queue(function(next) {
// do stuff
...
next();
})
Run Code Online (Sandbox Code Playgroud)
或者你可以使用.dequeue:
.queue(function() { // NB: no parameter
// do stuff
...
$(this).dequeue();
})
Run Code Online (Sandbox Code Playgroud)
后者实际上是执行此操作的较旧方式 - 该next参数是在jQuery 1.4中引入的,如果使用多个队列,则无需在.queue和.dequeue调用中重复队列名称.
| 归档时间: |
|
| 查看次数: |
96 次 |
| 最近记录: |