Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Не открывает popup на смартфоне (https://javascript.ru/forum/jquery/53378-ne-otkryvaet-popup-na-smartfone.html)

web-master 01.02.2015 16:21

Не открывает popup на смартфоне
 
Здравствуйте, при разработке мобильного сайта использую jquery mobile, столкнулся с такой проблемой.
Сделал 2 popup окна при выполнении определенного действия, первое появляется для подтверждения, а второе сообщает если возникла ошибка.
Все на ajax
Вызов такой
$(document).ready(function() {
  $('a.ajax').click(function() {
	var action = $(this).data('action');
	$.ajax({
	  type: "POST",
	  url: "profile/requests/language.php?",
	  data: "language=" + action,
	  success: function(msg){
		if(msg=='ok'){location.reload();}
		else{$("#error").popup("open");}
      },
      error: function(msg){
         $("#error").popup("open");
      }
	});
	return false;
  })	
})


частичный код страницы
<script type="text/javascript">
$(document).ready(function() {
  $('a.ajax').click(function() {
	var action = $(this).data('action');
	$.ajax({
	  type: "POST",
	  url: "http://192.168.1.157/profile/requests/language.php?",
	  data: "language=" + action,
	  success: function(msg){
		if(msg=='ok'){location.reload();}
		else{$("#error").popup("open");}
      },
      error: function(msg){
         $("#error").popup("open");
      }
	});
	return false;
  })	
})
</script>
    <ul data-role="listview">
        <script type="text/javascript">
	$(document).ready(function() {
	  $('a.ajax').click(function() {
		$("#install_ru").popup("close");
	  })	
	})
	</script>
    <li data-icon="false"><a href="#install_ru" data-rel="popup" data-position-to="window" data-transition="pop"><img src="http://192.168.1.157/include/css/flags/ru.png" class="ui-li-icon">Русский</a></li>
      <div data-role="popup" id="install_ru" data-dismissible="true" style="max-width:350px;">
        <div data-role="header">
        <h1>Установка языка</h1>
        </div>
        <div role="main" class="ui-content">
            Вы действительно хотите установить Русский язык?<br />
            <a href="#" data-action="ru" class="ui-btn ui-mini ajax" data-rel="back" data-transition="flow">Да</a>
            <a href="#" class="ui-btn ui-mini" data-rel="back">Отмена</a>
        </div>
      </div>
      <div data-role="popup" id="error" data-dismissible="true" style="max-width:350px;">
        <div data-role="header">
        <h1>Ошибка</h1>
        </div>
        <div role="main" class="ui-content">
            Не удалось установить язык.<br />
            <a href="#" data-action="ru" class="ui-btn ui-mini ajax" data-rel="back" data-transition="flow">Сообщить об ошибке</a>
            <a href="#" class="ui-btn ui-mini" data-rel="back">Отмена</a>
        </div>
      </div>

как можно понять если результат вернулся ОК то перезагружаем страницу, иначе открываем popup с ошибкой.
Тестирую на ПК и Android 4.4. На пк все работает как надо, но на смарте не открывает окно с ошибкой, причем первое окно где нужно подтвердить выбор работает. Как решить данную проблему?

Дополнение: полностью не работает на Chrome (android), проверил на Firefox (android) работает через раз.
Как сделать код кроссбраузерным?

krasovsky 02.02.2015 09:45

Я так понимаю ты открываешь один диалог поверх другого? Либо на мобильных это - фича. Попробуй сделать тоже самое из консоли, последовательно.
Вообще лучше открывать не 10 попапов друг поверх друга, а предусмотреть сообщения внутри уже существующего.

tsigel 02.02.2015 13:17

Андройд с хромом можно подключить к компу и в хроме компа получить доступ к консоли хрома мобилы. Читайте crome://inspect


Часовой пояс GMT +3, время: 09:55.