Я использую очень стандартную одностраничную модель для разработки JQueryMobile, например:
<div id="page1" data-role="page">Lorem Ipsum</div>
<div id="page2" data-role="page">
<div id="mycontent" data-role="content"></div>
</div>
Когда я щелкаю ссылку для перехода со страницы 1 на страницу 2, я добавляю содержимое в $("#mycontent"), которое содержит изображения, которые не всегда имеют указанную ширину/высоту, затем я применяю iScroll-4, чтобы я мог прокручивать/масштабировать контент - в некоторых случаях мне нужно увеличить его, как только он загружается, чтобы он хорошо помещался на экране мобильного устройства (обычно 600 пикселей в ширину для начала). Проблема в том, что после загрузки изображений форматирование разваливается, особенно потому, что мне нужно изменить положение элемента, поскольку масштабирование CSS любит центрировать увеличенный элемент, а не выравнивать по верхнему/левому углу.
Вероятно, это было длинное объяснение простой проблемы (может быть, есть лучший способ сделать то же самое?), но вот моя настоящая проблема: я пытаюсь добавить прослушиватель событий для события загрузки в div, чтобы Я могу проверить, нужно ли мне изменить положение div после загрузки всех изображений:
$("#mycontent").addEventListener('load', doSomething(), false);
function doSomething(){ alert("something"); }
Сумасшествие в том, что doSomething() ДЕЙСТВИТЕЛЬНО срабатывает, но затем Safari выдает следующую ошибку и аварийно завершает работу JQuery:
TypeError: 'undefined' не является функцией (оценка '$("#mycontent").addEventListener('load', doSomething(), false)')
Элемент присутствует в DOM, и он определенно загружается в момент добавления прослушивателя событий — и я думаю, это становится ясно из того факта, что он срабатывает. JQM применяет некоторые стили к элементу при переходе, но я не понимаю, как это повлияет на него.
Любая помощь будет оценена по достоинству, так как я некоторое время бился об это головой и собираюсь написать несколько очень уродливых циклических хаков для проверки изменений размера:/