Я использую jquerymobile (1.4.0). У меня есть один html-файл, который вызывает функцию javascript, которая создает всплывающее окно сброса. Всплывающее окно сброса имеет две кнопки (да, нет), которые в обоих случаях должны закрыть всплывающее окно после выполнения некоторых других операций.Неисправность при попытке закрыть всплывающее окно с помощью jquery mobile
Когда кнопка закрытия нажата, я получаю следующее сообщение об ошибке:.
Uncaught Error: cannot call methods on popup prior to initialization; attempted to call method 'close'
От поиска StackOverflow и других сайтов я мог видеть предложения, которые я называю («mypopup») всплывающее окно() до моего что я делаю. Я попытался позвонить («#theResetPopup»), а также («#lnkResetPopup»), но ни одна из них не работает. Вызов $ (this) .popup.close(); (После того, как ($ this.popup()) от кнопки «нет», не только приводит в результате чего фактическая кнопка исчезнет.
Если я следующий в обработчике btnResetNo
$("#theResetPopup").popup();
$("#theResetPopup").popup("close");
всплывающее окно действительно исчезает но я получаю следующее сообщение об ошибке:
Uncaught HierarchyRequestError: Failed to execute 'appendChild' on 'Node': The new child element contains the parent.
Я думаю, что вопрос связан с тем, что я использую метод lnkPopup но я в недоумении относительно того, как это исправить :(
.Любая помощь очень ценится, спасибо заранее!
Из моего .html-файла.
<a id='lnkResetPopup' href="#theResetPopup" data-rel="dialog" data-transition="flip" data-role="popup" data-position-to="window" style='display:none;'></a>
<div data-role="page" id="theResetPopup" data-role="popup">
<div data-role="header" id="resetPopupTitle">
Reset
</div>
All progress will be lost. Are you sure?
<center>
<button id="btnResetYes" type="submit" data-theme="a" class="ui-btn-corner-all ui-btn ui-btn-inline ui-icon-check ui-btn-icon-notext">Yes</button>
<button id="btnResetNo" type="submit" data-theme="a" class="ui-btn-corner-all ui-btn ui-btn-inline ui-icon-delete ui-btn-icon-notext">No</button>
</center>
<script>
$("#btnResetYes").click(function() {
gameClass.resetGame();
gameClass.closeResetPopup();
});
$("#btnResetNo").click(function() {
gameClass.closeResetPopup();
//$("#theResetPopup").popup();
//$("#theResetPopup").popup("close");
});
</script>
</div>
Из моего файла JavaScript.
showResetPopup:function()
{
$("#lnkResetPopup").popup();
$("#lnkResetPopup").popup('open');
$("#resetPopupTitle").html('<center>Reset?</center>');
},
closeResetPopup:function()
{
$("#lnkResetPopup").popup();
$("#lnkResetPopup").popup('close');
},
Hi ezanker. Спасибо, что нашли время ответить на это, для решения проблемы и для скрипки :) Я очень ценю это. Я не могу проголосовать за ваш ответ, поскольку у меня нет репутации, но я «принял» его. Если есть что-то еще, что мне нужно сделать, чтобы дать вам кредит на ответ, пожалуйста, дайте мне знать. – greysqrl
Принять ответ достаточно. Я рад, что могу помочь. – ezanker