Fancybox2.1.3不能与Backbone和IE7一起使用

时间:2012-10-29 11:53:22

标签: backbone.js internet-explorer-7 fancybox fancybox-2 ie7.js

我的情况是我有BackboneJS(0.9.2)和RequireJS(2.1.3)并且需要使用Fancybox打开一些内联隐藏内容(从下划线模板渲染):

<div id="inlineContent" style="display: none">
    <div class="brand-images">
        <img class="brand-image" src="/img/brandImage.png" alt="" />
        <img class="designer-image" src="/img/designer.jpg" alt="" />
        <div class="external button"><a href="<%= designer.get("link") %>" data-designer="<%= designerId.substr(2, designerId.length) %>">Shop the full collection</a><span></span></div>
    </div>
    <div class="details">
        <p><%= designer.get("bio") %></p>
        <p class="more-bio"><%= designer.get("bioMore") %></p>
    </div>
</div>

我尝试了各种方法将fancybox附加到元素,最简单的是在View.render(也使用View.events):

$(this.el).html(  _.template( detailsDesignerTemplate, data )).appendTo(that.pageElement);
$('.read-more').fancybox({
    padding: 0,
    height: 'auto',
    width: 970,
    autoSize: false,
    title: '<h1>Title</h1>'
});

除了IE7之外(没有IE6支持,是的!)它的工作原理。 IE7什么都不做(虽然有趣的是它确实称之为“beforeLoad”回调);

另外,有趣的是,它适用于iFramed内容。

1 个答案:

答案 0 :(得分:0)

fancybox使用了容器#fancybox-content 只是设置到你查看el:$('#fancybox-content') 并调用$ .fancybox(此。$ el.html(),{options})