在jQuery show / hide之后执行的回调函数?

时间:2014-09-20 21:50:41

标签: javascript jquery

在iOS中,以下代码在hide()和scrollBy()之间有明显的闪烁:

element.hide();
window.scrollBy(0, -elementHeight);

这是因为在iOS上显示:none和display:block之间切换是一项繁重的任务,就像在DOM中添加和删除元素一样。

一旦hide()成功完成并且DOM已更新,我需要一种方法来执行window.scrollBy()作为回调。有没有办法在jQuery中执行此操作?

2 个答案:

答案 0 :(得分:3)

传递持续时间和回调,或者只传递一个回调选项,如下所示:

element.hide(0, some_function);

// or 

element.hide({done: some_function});

默认情况下,第二个选项需要400毫秒。要立即执行此操作,请使用以下方法之一:

element.hide(0, some_function);

// or 

element.hide({duration: 0, done: some_function});

Here's a jsFiddle demo

See the jQuery documentation了解详情。

答案 1 :(得分:0)

来自jQuery api:

  

.hide(选项)

     

完整   类型:功能()   动画完成后调用的函数。

试试这个:

  

element.hide({complete:function(){   window.scrollBy(0,-elementHeight); });