jquery与jquery循环滑块与fancybox冲突

时间:2013-03-13 23:11:31

标签: jquery

我有一个使用名为“循环”的jQuery滑块的网站。当您单击幻灯片时,会弹出一个fancybox。滑块然后暂停哪个是正确的,但我需要的是滑块在关闭fancybox后恢复。从本质上讲,我无法让这段代码的第二部分发挥作用。

$('.fancy-box').click(function(){
console.log('pause is working')
$('.hero-carousel').cycle('pause');
});

$('.fancybox-close').click(function(){
console.log('resume is working');               
$('.hero-carousel').cycle('resume');
}); 

1 个答案:

答案 0 :(得分:0)

尝试使用事件委托作为关闭按钮,以防它在运行时生成(因此在页面加载时不存在):

$("body").on("click", ".fancybox-close", function(event){
    console.log('resume is working');               
    $('.hero-carousel').cycle('resume');
});

更新:

由于这似乎解决了这个问题,我想解释一下这个问题有什么好处(以防万一将来遇到同样的问题)。

加载页面时,没有类名为fancybox-close的元素。因此,单击处理程序永远不会附加到任何内容。

$("body").on("click", ".fancybox-close", function(event){...});会听取body标签内发生的任何点击(几乎每次点击),如果该点击源自一个类名为fancybox-close的元素,那么它将执行功能。因此,我们现在不再依赖于页面加载时出现的元素。