Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery-事件处理程序中切换(显示/隐藏)的回调_Jquery_Event Handling_Callback_Toggle - Fatal编程技术网

jQuery-事件处理程序中切换(显示/隐藏)的回调

jQuery-事件处理程序中切换(显示/隐藏)的回调,jquery,event-handling,callback,toggle,Jquery,Event Handling,Callback,Toggle,我已经很好地解决了这个问题: $('#RCH'+r).on('click',function(e){$('#RSC'+r).find('.rct,.rcp').toggle();}); 但是,在所有切换结束时,我想调用一个函数rs(1) 计划1:我试着把回调放在开关上,但一切都乱了套 $('#RCH'+r).on('click',function(e){ $('#RSC'+r).find('.rct,.rcp').toggle('',function(){rs(1);}); }); 上面

我已经很好地解决了这个问题:

$('#RCH'+r).on('click',function(e){$('#RSC'+r).find('.rct,.rcp').toggle();});
但是,在所有切换结束时,我想调用一个函数
rs(1)

计划1:我试着把回调放在开关上,但一切都乱了套

$('#RCH'+r).on('click',function(e){
  $('#RSC'+r).find('.rct,.rcp').toggle('',function(){rs(1);});
});
上面为类的每次出现调用函数
rs(1)
(如
each
)。它还取消了正常情况下发生的操作,因此,如果显示
.rcp
,而隐藏
.rct
,则恰恰相反。所以计划1让所有的事情都在一个篮子里下地狱

计划2:我还尝试将
rs(1)
放在
功能上的
切换之后(如下所示)

但是,此方法在切换完成之前触发
rs(1)
,因此
rs
函数不起作用

所以。。。我怎样才能发射
rs(1)切换完成后一次


谢谢。

首先,
.toggle()
是即时的,所以我假设您实际使用的是
.toggle(/*some duration*/)
。在这种情况下,可以传递在切换动画完成后调用的函数:

$('sel').toggle(/* duration */, function () {
  // ...
});
如果您实际使用的是
.toggle()
,但由于某种原因,延迟导致代码失败,则可以尝试以下方法:

$('sel').toggle(0, function () {
  // ...
});

试试这个,我希望它能起作用。

toggle()
是即时的,所以后者应该能起作用吗?我本来会这样想的,但似乎不是这样。我会检查:)[稍后]不,看起来确实不是这样。我猜是因为它循环了这两个类的所有实例。我错了,各位。它是瞬间的。但是我最近修改了rs函数,使其接受两个参数,而不是一个。所以函数没有被正确调用。一千次赦免。你是对的,马特&费利克斯:)我希望开关是瞬时的。当我添加回调时,我使用的是.toggle(“”,function(){…,它实现了与toggle(0,function(){…)相同的功能,这将在附加事件处理程序后启动函数rs(1),而不是在事件处理程序启动时,对吗?我希望rs(1)在处理程序启动时运行(即,当用户单击RCH3时(如果r=3)).但谢谢你的建议:)
$('sel').toggle(0, function () {
  // ...
});
$.when($('#RCH'+r).on('click',function(e){$('#RSC'+r).find('.rct,.rcp').toggle();}))
  .done(function(){rs(1);});