Я сталкиваюсь с необычной проблемой, и я ищу предложения. В основном, я использую:
- JQuery Mobile 1.1
- JQuery 8.2
- PhoneGap (Cordova) 2.1
На многих страницах моего приложения на iPhone, если я помещаю курсор в поле ввода, это открывает виртуальную клавиатуру. Это прекрасно и ожидается.
Здесь проблема: в некоторых случаях (но не все), помещая мой курсор в поле ввода, запускается событие window.resize. Я проверил это с помощью кода ниже:
$(window).resize(function(e) {
alert('The window resize occurred! Width: ' + $(window).width() + " Height: " + $(window).height());
debugger;
return false;
});
Сразу же после разрешения события window.resize JQueryMobile решает изменить размер страницы до неправильной высоты. Я могу сказать, что это страница, потому что я добавил другую границу цвета для каждого элемента, чтобы узнать, что именно. И во многих случаях это изменение размера приводит к тому, что половина моего графического интерфейса переполняется под дном div, иногда даже заставляя мой курсор скрываться под div.
Лучший способ понять это с помощью скриншота:
Теперь я действительно не ожидаю, что кто-то найдет для вас точный ответ. Я просто ищу советы для отладки. Я добавил оператор "debugger" в мое событие window.resize() и попытался выполнить код. Я надеялся привлечь другого слушателя с изменением размера, который предназначен для изменения размера страницы. Если я могу это найти, я могу временно нанести вред, когда кто-то выбирает элемент формы, а затем снова разрешает изменение размера при размытии или изменении ориентации. Проблема в том, что я прошел через каждую строку кода, и процесс отладки остановился прямо до изменения размера.
Это заставляет меня задаться вопросом, есть ли другое событие, уволенное в стороне от window.resize. Поэтому я добавил две строки ниже:
document.addEventListener("throttledresize", function() { alert("throttledresize fired.") }, false);
document.addEventListener("orientationchange", function() { alert("orientationchange fired.") }, false);
Тем не менее, никто не стрелял. Поэтому я немного застрял. У меня хорошее чувство, что я знаю, в чем проблема, но я не могу отследить его до источника. Любые предложения о том, где я могу найти этот таинственный код, который изменяет размер страницы на window.resize()?