コールバックとファンシーボックスで興味深い問題が発生しているようです。問題は次のとおりです。複数のボタンから呼び出すファンシーボックスがあります。fancybox は、モーダルの yes no ボックスです。ユーザーが [はい] を選択すると、コールバックが発行されます。これはうまくいきます。この問題は、ユーザーが別のアイテムを選択すると、fancybox が表示され、ユーザーが再度 [はい] を選択したときに発生します。コールバックは、前のアイテムに対して 1 回、新しいアイテムに対して 1 回、合計 2 回発生します。これが私のコードです:
ファンシーボックスを表示するためのボタン呼び出し (ページ上に複数):
<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);
});
}
});
}
ありがとうございます!