0

我正在使用灯丝组平面菜单。单击第一个锚点时,我想在 FancyBox 中打开另一个页面,但它似乎不起作用。单击时,另一个页面将在同一窗口中打开,而不是在 FancyBox 中。如果,我在菜单 div 之外使用相同的锚,FancyBox 可以正常工作。请帮忙。

开发环境:ASP.NET 4.0、JQuery v1.7、JQuery UI v1.8.18、FancyBox v1.3.4

以下是供参考的JQuery代码:

$('a#aShowLevels').live('mousedown', function() {
    var l_sHref = "./tbl.aspx?iframe?id=" + $("#hftbTID").val();
    $("a#aShowLevels").attr("href", l_sHref);
    $(this).trigger('click');
});

$("a#aShowLevels").fancybox({
    'showIframeLoading': true,
    'enableEscapeButton': true,
    'width': 680,
    'height': 540
});

以下是 HTML 代码:

<a tabindex="0" href="#divMenuOptions" class="fg-button fg-button-icon-right ui-widget ui-state-default ui-corner-all" id="flatMenu"><span class="ui-icon ui-icon-triangle-1-s"></span>Options</a>
<div id="divMenuOptions" class="hidden">
    <ul>
    <li><a id="aShowLevels" href="#" class="iframe" runat="server">Show Bids</a></li>
    <li><asp:LinkButton ID="lkbtnConvertToPO" runat="server" PostBackUrl="~/po.aspx">Convert to PO</asp:LinkButton></li>
    </ul>
</div>
4

1 回答 1

0

我找到了如下解决方案:

将锚属性从 ...

<li><a id="aShowLevels" href="#" class="iframe" runat="server">Show Bids</a></li>

<li><a id="aShowLevels" href="#" runat="server" onclick="var goURL='./tbl.aspx?id=' + $('#hftbTID').val();openFB(goURL)">Show Bids</a></li>

移除了附加到a#aShowLevels元素的live event 和 fancybox 函数,并添加了以下函数:

    function openFB(url) {
        $.fancybox({
            'href': url,
            'type': 'iframe',
            'width': '95%',
            'height': '90%'
        });
    }

credit goes to @JFK (url: http://groups.google.com/group/fancybox/browse_thread/thread/4449cbde5e004365/98735950117f861b)

于 2012-05-22T18:33:03.417 回答