0

当您单击时,我需要它翻转,然后延迟,然后与花式框一起弹出。我能想出让fancybox在延迟后触发的唯一方法是使用延迟插件和.trigger('click')在延迟后触发它。问题是它不断地不断地触发 .trigger('click') ,如果没有 .off() 会杀死其他所有东西,我无法找到阻止它的方法。我真的很感激一些建议。

活生生的例子

<script type="text/javascript">
jQuery.noConflict();

// First Home Page Popout Box
jQuery(document).ready(function() {
   jQuery('#card-processing-link').live('click', function() {
       jQuery('#card-processing-box').flip({
              'direction' : 'lr',
               speed      : '300'
       });
   });    
   //Fancybox popout event
   jQuery('#card-processing-link').delayed('click', 400, function(){          
              jQuery(this).trigger('click').fancybox({
              'onStart'         : function(){
                                  jQuery('#card-processing-box').hide();
                                  jQuery('#card-processing-popout').show();
                                  },
              'transitionIn'   : 'elastic',
              'transitionOut'  : 'fadeOut',
              'speedIn'        : 300,
              'speedOut'       : 500,
              'width'          : '420',
              'height'         : 'auto',
              'scrolling'      : 'no',
              'centerOnScroll' : 'true',
              'overlayColor'   : 'transparent',
              'onClosed'       : function(){
                                 jQuery('#card-processing-popout').hide();
                                 jQuery('#card-processing-box').fadeIn();

                                           }            
       });
     });
});
</script>
4

1 回答 1

1

为什么要触发点击事件a ,如果你已经点击了它

jQuery(this).fancybox({

应该够了。。

否则你会陷入无限循环,不断触发点击事件

您可以使用setTimeout 将执行延迟到以后的时间

jQuery.noConflict();

// First Home Page Popout Box
jQuery(document).ready(function () {
    jQuery('#card-processing-link').live('click', function () {
        jQuery('#card-processing-box').flip({
            'direction': 'lr',
            speed: '300'
        });

        var $this = jQuery(this);
        setTimeout(function () {
            $this.fancybox({
                'onStart': function () {
                    jQuery('#card-processing-box').hide();
                    jQuery('#card-processing-popout').show();
                },
                    'transitionIn': 'elastic',
                    'transitionOut': 'fadeOut',
                    'speedIn': 300,
                    'speedOut': 500,
                    'width': '420',
                    'height': 'auto',
                    'scrolling': 'no',
                    'centerOnScroll': 'true',
                    'overlayColor': 'transparent',
                    'onClosed': function () {
                    jQuery('#card-processing-popout').hide();
                    jQuery('#card-processing-box').fadeIn();

                }
            });

        }, 400);
    });
});
于 2013-06-07T21:27:47.420 回答