【问题标题】:Fancybox onComplete function not runningFancybox onComplete 功能未运行
【发布时间】:2012-05-30 12:17:58
【问题描述】:

由于某种原因,它只是没有运行onComplete 函数。但是它确实加载了fancybox div。我的html:

<ul>
    <li class="orange">

           #1 <a href="#text">click here</a>

           <div id="text" class="text">text text text</div>

    </li>
</ul>

我的 jquery:

 jQuery('li a').fancybox({       
    'autoDimensions':   'false',
    'width' :   631,
    'height':   256,        
    'onComplete':function(){

        alert('running');
        jQuery('.fancybox-skin').css('background-color',colour);
    }
});

警报没有运行。我也尝试将事件函数更改为onClosed 和其他事件,但什么都没有。

【问题讨论】:

标签: jquery fancybox


【解决方案1】:

我猜你忘记指定你使用的是什么版本的 fancybox。

onComplete 是 fancybox v1.3.x 的回调选项,而 fancybox-skin class 是在 2.x 版本之前引入的,......所以我假设你正在使用2.x 版,不是吗?

Fancybox v2.x 选项是新的,与以前的版本不兼容; onComplete (v1.3.x) 选项的等效项现在是 afterLoad (v2.x) 回调选项。

查看 http://fancyapps.com/fancybox/#docs 以获取 fancybox v2.x 的选项、方法和回调的完整列表

【讨论】:

  • 谢谢。我在看这里 - fancybox.net 那是一个不同的花式盒子吗?
  • 它基本上是相同的插件(和相同的作者),但版本 1.x 和 2.x 具有不同的网页,因为它们的功能和许可计划不同。如果您认为是正确的,请不要忘记将此答案标记为正确。谢谢。
  • 实际上,如果您打算添加任何事件,afterShow 会更有意义。 afterLoad 在准备好加载时立即触发它显示任何内容之前
  • @JunaidBhura :我们正在查看一个已有近一年历史的问题/答案,当时afterLoad 是使用正确的回调。今天,如果你再次问我,我会使用 beforeShow 和最新版本的 fancybox (v2.1.4) .....不幸的是,在 SO 中保持更新的大多数答案非常困难,人们应该注意一些答案可能是过时了。
【解决方案2】:

afterShow 我认为与 Fabxybox 2 中的 onComplete 完全等效

【讨论】:

  • 这对我来说是正确的答案。我正在将图像映射添加到一组幻灯片中。 afterShow 按预期完成了这项工作。 afterLoad 不是添加此属性的正确事件:$('.fancybox-image').attr('usemap', '#Map');
【解决方案3】:

Fancybox 版本 2 不支持 onComplete。它使用afterLoad

jQuery('#tips li a').fancybox({       
    'autoDimensions':   'false',
    'width' :   631,
    'height':   256,        
    afterLoad:function(){

        alert('running');
        jQuery('.fancybox-skin').css('background-color',colour); // colour to 'red' for example. typo
    }

});

【讨论】:

    【解决方案4】:

    好像是错别字

    jQuery('#tips li a').fancybox({       
    'autoDimensions':   'false',
    'width' :   631,
    'height':   256,        
    'onComplete':function(){
    
        alert('running');
        jQuery('.fancybox-skin').css('background-color',colour); // colour to 'red' for example. typo
    }
    });
    

    Working example

    【讨论】:

    • 这不起作用,是的,它会加载警报,但背景颜色不会改变
    • onComplete 功能正常吗?你说它加载警报。但是您想更改.fancybox-skin 背景颜色?你能提供网站链接吗
    • 我在 jquery.fancybox-1.3.4.css 中没有找到 .fancybox-skin 选择器
    【解决方案5】:

    使用 afterLoad 而不是 onComplete

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-06
      • 2018-08-16
      • 2019-10-15
      • 1970-01-01
      • 1970-01-01
      • 2014-12-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多