2017-02-15 22 views
13

в нашем проекте мы используем в jquery-mobile popup dialogПредотвращение JQuery мобильные всплывающее переставляет для телефонов Huawei после ввода текста в качестве входного элемента

После того, как будет показан диалог, в первый раз я пытаюсь заполнить текст на моем телефон (Huawei P9 lite, Android 6.0.0, Chrome 55.0.2883.91), всплывающее окно закрывается и снова открывается.

Я могу повторить этот выпуск даже на демо Форма всплывающее окно.

Наглядное более крупное устройство (5,7 дюйма против 5 дюймов) с большим экраном и почти тем же андроидом (6.0.1, тот же браузер) этого не происходит.

Кажется, что это вызвано всплывающим всплывающим меню, автоматически переключающимся после появления клавиатуры. Кто-нибудь сталкивался с подобной проблемой? Как вы решили это?

<a href="#popupLogin" data-rel="popup" data-position-to="window" class="ui-btn ui-corner-all ui-shadow ui-btn-inline ui-icon-check ui-btn-icon-left ui-btn-a" data-transition="pop">Sign in</a> 
<div data-role="popup" id="popupLogin" data-theme="a" class="ui-corner-all"> 
    <form> 
     <div style="padding:10px 20px;"> 
      <h3>Please sign in</h3> 
      <label for="un" class="ui-hidden-accessible">Username:</label> 
      <input type="text" name="user" id="un" value="" placeholder="username" data-theme="a"> 
      <label for="pw" class="ui-hidden-accessible">Password:</label> 
      <input type="password" name="pass" id="pw" value="" placeholder="password" data-theme="a"> 
      <button type="submit" class="ui-btn ui-corner-all ui-shadow ui-btn-b ui-btn-icon-left ui-icon-check">Sign in</button> 
     </div> 
    </form> 
</div> 
+0

использовать страницу с данными-ролью = «диалог», как у вас в любом случае данные позиции к = «окно» в проекте – deblocker

+0

Спасибо большого, так как у нас есть приличное количество из них, я буду попытайтесь найти быстрое обходное решение вместо переделки всех всплывающих окон. –

+0

Диалоги @deblocker будут удалены в следующей версии. – Omar

ответ

4

Ответ основан на комментарии Омара. Как только я прокомментирую следующие строки кода, поведение не появляется (возможна потеря хорошей функции репозиционирования).

_handleWindowResize: function(/* theEvent */) { 
    if (this._isOpen && this._ignoreResizeTo === 0) { 
     if ((this._expectResizeEvent() || this._orientationchangeInProgress) && 
      !this._ui.container.hasClass("ui-popup-hidden")) { 
      // effectively rapid-close the popup while leaving the screen intact 
      // this._ui.container 
      // .addClass("ui-popup-hidden ui-popup-truncate") 
      // .removeAttr("style"); 
     } 
    } 
}, 
+2

вы можете добавить функцию репозиции вместо прокомментированного кода. – Omar

+2

@ Omar: Я предполагаю, что это было исправлено для 1.5, по крайней мере, из списка изменений здесь [jQuery Mobile 1.5.0-alpha1 Changelog] (http://jquerymobile.com/changelog/1.5.0-alpha1/) – deblocker

+0

Спасибо за совместное использование @deblocker. К сожалению, он еще не выпущен. – Omar