在运行使用布尔值的fancybox之后,函数不会解除绑定

时间:2012-12-11 15:33:54

标签: jquery fancybox unbind

我试图在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
     });

1 个答案:

答案 0 :(得分:0)

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

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