Кажется, у меня интересная проблема с обратным вызовом и fancybox. Вот в чем проблема: у меня есть модный ящик, который я вызываю с помощью нескольких кнопок. Fancybox - это модальное поле "да нет". Когда пользователь выбирает «да», выполняется обратный вызов. Это прекрасно работает. Проблема возникает, когда пользователь выбирает другой элемент, отображается fancybox и пользователь снова выбирает «да». Обратный вызов запускается дважды: один раз для предыдущего элемента и один раз для нового элемента. Вот мой код:
Вызов кнопки для отображения fancybox (несколько на странице):
<button id="ctl00_ContentPlaceHolderColMain_ucSKUList_rptSkuList_ctl00_btnAdd" class="btn btnCart btnColor5" ss="oos" skuid="12345" onclick="initAddToCart(this);">Back Order</button>
Fancybox 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);
});
}
});
}
Заранее спасибо!
<input type="button"></button>
.<button>
и<input>
- две разные вещи; вы не закрываете один вид тега другим, совершенно другим тегом.input
обычно самозакрывающийся,<input />
. Такжеalign="center"
некоторое время назад устарел. Запустите свою страницу с помощью W3C Validator. - person Sparky   schedule 17.08.2012id="btnBOYes"
иid="btnBONo"
где-нибудь на странице? Идентификатор должен быть уникальным, иначе у вас будет недопустимый HTML, что может вызвать другие проблемы ... и в этом суть. - person Sparky   schedule 17.08.2012backorderVerify()
? - person JFK   schedule 17.08.2012backorderVerify()
не закрыт должным образом .... вы закрываете обратный вызовbeforeShow
перед тем, как привязываетеclick
к селектору#btnBONo
, если только это не другая ошибка копирования / вставки. - person JFK   schedule 17.08.2012