0

我试图让一个按钮在fancybox关闭后停止闪烁。我已经尝试了所有我知道的方法,但我不确定为什么它没有解除约束。这是代码:

    var clicked = true;
    var playbtn = $('.playbtn');

    function unpulse(){
       clicked = false;
       playbtn.unbind(pulse);
    }

    function pulse(){
       playbtn.delay(200).fadeOut('slow').delay(50).fadeIn('slow', pulse);
    }

    if (clicked) {
       pulse();
    }else if (!clicked) {
       alert('finally');
     };


     $('.playbtn a').fancybox({
        'type' : 'iframe',
        'transitionIn':'elastic',
        'transitionOut' :'elastic',
         'speedIn':600, 
         'speedOut':200, 
        'overlayShow':  false,
         'onClosed':unpulse
     });
4

1 回答 1

0

您正在尝试删除一个事件,因为它就是这样.unbind做的。(此外,不支持您的 for 语法.unbind,但无论如何这不是您所追求的。)相反,只需检查内部pulse是否继续淡入淡出。这是有效的,因为pulse它被递归调用,所以每次淡入淡出迭代停止时都会进行检查:

function pulse(){
  if(clicked) {
    playbtn.delay(200).fadeOut('slow').delay(50).fadeIn('slow', pulse);
  }
}
于 2012-12-11T15:37:03.427 回答