0

我正在尝试制作 SPA 并将 Hot Towel 模板与 durandal 一起使用。到目前为止,我已经成功地在我的水疗中心添加了一个 Fancybox,它显示了一张图片

<a class="fancybox-thumb" rel="fancybox-thumb" href="http://farm9.staticflickr.com/8486/8225588056_d229e8fe57_b.jpg" title="Porth Nanven (MarcElliott)">
        <img src="IMAGEPATH" alt="" />
    </a>


$(document).ready(function () {
        $(".fancybox-thumb").fancybox({
            openEffect: 'elastic',
            closeEffect: 'elastic',
            helper: {
                title: {
                    type: 'outside'
                },
                thumbs: {
                    width: 50,
                    height: 50
                }
            }
        });

        $('#label').click(function () {
            $('#inline').fancybox();
        });

    });

这工作不那么正常,但没关系;)

现在我想在fancybox中有一个自己的内联,如下所示:

<div id="inline" style="display:none;width:500px;">
        <p>
            <a id="add_paragraph" title="Add" class="button button-blue" href="javascript:;">Add new paragraph</a>
            &nbsp;
            <a href="javascript:$.fancybox.close();">Close</a>
        </p>
        <p>
            Lorem ipsum dolor sit amet, consectetur adipiscing elit.
        </p>
</div>

当我点击时不:<a class="fancybox-thumb" href="#inline">Inline</a> 我确实得到了带有我的信息的幻想框。但是 url 被设置回 localhost:2321/#inline 所以我被重定向回了家,但我确实看到了幻想框。我该如何解决这个问题,以便花式框在我的 SPA 中显示一个正确的页面并留在那里?

格。乐华

4

2 回答 2

0

如果你已经初始化了 fancybox

$(".fancybox-thumb").fancybox({
    openEffect: 'elastic',
    closeEffect: 'elastic',
    helper: {
        title: {
            type: 'outside'
        },
        thumbs: {
            width: 50,
            height: 50
        }
    }
});

那么您可以对图像内联内容使用相同的脚本,因此图像的链接:

<a class="fancybox-thumb" rel="fancybox-thumb" href="http://farm9.staticflickr.com/8486/8225588056_d229e8fe57_b.jpg" title="Porth Nanven (MarcElliott)"><img alt="" src="http://farm9.staticflickr.com/8338/8224516167_bc7a5f6699_m.jpg" /></a>

内联内容的链接:

<a class="fancybox-thumb" data-fancybox-type="inline" href="#inline">Inline</a>

请注意,我们添加了data-fancybox-type="inline"属性来定义type此特定项目的内容。

您的内联html 结构可以保持不变:

<div id="inline" style="display:none;width:500px;">
    <p>
       <a id="add_paragraph" title="Add" class="button button-blue" href="javascript:;">Add new paragraph</a>
&nbsp; <a href="javascript:$.fancybox.close();">Close</a>
    </p>
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
</div>

JSFIDDLE

于 2013-03-21T17:12:09.007 回答
0

我有这个工作;)

这就是我所做的,

HTML:

<a class="fancybox-link">Inline</a>    

    <div style="display: none">
        <div id="inlineContent" style="width:1000px;">
            <h2>Lorem ipsum dolor sit amet</h2>

            <p>
                <a id="add_paragraph" title="Add" class="button button-blue" href="javascript:;">Add new paragraph</a>
                &nbsp;
                <a href="javascript:$.fancybox.close();">Close</a>
            </p>
            <p>
                Lorem ipsum dolor sit amet, consectetur adipiscing elit.
            </p>
        </div>
    </div>

Javascript:

 $("a.fancybox-link").click(function (e) {
            $.fancybox({
                content: $('#inlineContent').html(),
                type: 'inline'             
            });
            return false;
        });

再见

于 2013-03-20T12:41:38.740 回答