当你点击我需要它翻转,然后延迟,然后弹出fancybox。我可以想办法让延迟插件后触发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>
答案 0 :(得分: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);
});
});