Jquery Fancybox 回调问题



>我似乎在回调和花哨的盒子方面遇到了一个有趣的问题。 问题是:我有一个花哨的盒子,我从多个按钮调用它。 花式盒子是一个模态是不是盒子。 当用户选择"是"时,将发出回调。 这很好用。 当用户选择另一个项目时,会出现问题,显示花哨框并且用户再次选择"是"。 回调触发两次,一次用于前一项,一次用于新项。 这是我的代码:

按钮调用以显示花式框(页面上有多个):

<button id="ctl00_ContentPlaceHolderColMain_ucSKUList_rptSkuList_ctl00_btnAdd" class="btn btnCart btnColor5" ss="oos" skuid="12345" onclick="initAddToCart(this);">Back Order</button>

花式框 html:

<div id="backorderVerify" style="display:none;">
        <div class="inner">
            <h2>Item is not in stock!</h2>
            <div class="base">
                <div align='center'>
                    Would you like to backorder?
                </div>
                <div align="center" style="margin:20px 0 0 0;">
                    <input type="button" id="btnBOYes" value="Yes" />
                    <input type="button" id="btnBONo" value="No" />
                </div>              
            </div>
        </div>
    </div>

Javascript:

function backorderVerify(objAddBtn) {
    $.fancybox({
        'closeBtn': false,
        'href' : '#backorderVerify',
        'beforeShow' : function () {
            $("#btnBOYes").click(function () {
                $.fancybox.close(true);                    
                    addToCart($(objAddBtn).attr("skuid"), objAddBtn);
            });
            $("#btnBONo").click(function () {
                $.fancybox.close(true);
            });
        }
    });

}

提前感谢!

好吧,fliim 实际上有正确的想法。 每次召唤花式盒子时,之前的节目都被捆绑起来。 因此,为每个绑定项目调用它。 我最终将"是/否"单击事件从花哨的框调用中拉出,并将每个事件都设置为自己的方法,这些方法将由按钮调用。 感谢大家对此的帮助。

我认为您不应该在 beforeShow 事件中定义您的点击句柄。也许每次事件发生时,他都会再定义一次。

最新更新