У меня есть всплывающая страница Magnific:
function dataLink(){
$.magnificPopup.open({
items: {
src: 'datapage.html',
type: 'ajax'
},
closeOnContentClick : false,
closeOnBgClick :true,
showCloseBtn: false,
enableEscapeKey : false,
callbacks: {
open: function(){
$.magnificPopup.instance.wrap[0].addEventListener('focus', mpTable);
},
close: function(){
$.magnificPopup.instance.wrap[0].removeEventListener('focus', mpTable);
},
}
});
}
datapage.html
имеет две таблицы, которые я скрываю или показываю в зависимости от контекста (страница загружается с data1table
показом и data2table
скрытием):
<div class="white-popup">
<table id="data1table" class="table1">
</table>
<table id="data2table" class="table2">
</table>
</div>
В таблице1 есть кнопка, которая скрывает table1
и показывает table2
. В table2
есть кнопка, которая вызывает функцию javascript для отправки данных:
<input onclick="dataCheck()" type="button" value="Check Data" />
который затем вызывает:
function dataCheck(){
if(datacheck[0]==false || datacheck[1]==false){
alert("Please enter data in all fields correctly.");
} else{
$.ajax({
url: 'dataconfirm.php',
type: "POST",
async: false,
data: {
},
dataType: 'json',
success: function(data){
alert("Thank you!");
localdata=data;
$.magnificPopup.close();
}
});
};
}
Моя проблема заключается в том, что когда вы нажимаете кнопку для вызова dataCheck()
, она возвращается к отображению table1
(как изначально загружено Magnific Popup) и фактически не вызывает событие dataCheck()
. Если пользователь снова нажимает кнопку, чтобы отобразить table2
, он может затем нажать кнопку для dataCheck()
второй раз, и все будет работать нормально. Спасибо за любые идеи - я не понимаю, почему это происходит, особенно учитывая, что это работает во второй раз.