Кнопки мобильной панели Jquery работают до 300 пикселей
Я построил панель соответствующего размера, например:
<div data-role="panel" data-position="right" data-display="overlay" data-theme="a"
id="add-form" style="width:50%; max-width:500px;" data-position-fixed="true">
По какой-то причине панель перестает работать на отметке 300 пикселей. Как и в случае, размер панели будет изменяться в зависимости от ширины области просмотра, но после 300px ширины ничего не будет кликать Когда ширина панели превышает 300 пикселей, часть кнопок будет активирована, а часть - нет. Я пытался добавить! Важно ко всему, это тоже не помогает. Я использую jQuery mobile 1.4.3 (для настольного сайта мне больше нравится внешний вид панелей, форм и кнопок, чем для настольного jQuery). Да, я назвал jQuery и его CSS последними в теге head, иначе панель вообще не будет работать
1 ответ
Я делаю снимок в темноте здесь, так как не вижу остальной вашей разметки.
Я смоделировал скрипку на http://jsfiddle.net/a9f22n70/1/ того, что, как я думаю, вы имели в виду. При загрузке я увидел несколько классов, добавленных к элементу панели (от jQuery mobile), которые вызывали проблемы с разметкой на рабочем столе. Я удалил все классы при загрузке и снова добавил класс "ui-panel". Это очистило вещи для меня.
Разметка, которую я использовал, чтобы проверить, была:
<div data-role="panel" data-position="left" data-display="overlay" data-theme="a"id="add-form" style="width:50%; max-width:500px;background:red;" data-position-fixed="true">
<a href="index.html" data-role="button">Link button</a>
</div>
JQuery (очень простой) выглядит следующим образом:
$(document).ready(function(){
$("#add-form").attr("class","").addClass("ui-panel");
})
Опять же, я предположил, что вы хотите использовать только элемент # add-form.
Как говорится, предположение - мать всех... так что, надеюсь, я ударил ногтем по голове!
ОБНОВИТЬ
После изучения кода в вашей скрипке проблема (для меня) заключается в наличии класса "ui-panel-dismiss" на панели самой себя. Удаление этого класса (с помощью моего инструмента инспектора для тестирования) исправило эту проблему.
Это что-то вроде хака, но вы можете удалить этот класс из панели, используя jQuery после загрузки страницы, используя removeClass();
функция.
РЕДАКТИРОВАТЬ
Вот рабочая скрипка, решающая проблему: http://jsfiddle.net/smoewxd4/3/
ЗАКЛЮЧИТЕЛЬНЫЙ ВЕРДИКТ
Решение CSS, которое вы предложили в своих комментариях, работало, но в результате все панели были бы настроены на 50% ширины. Вместо этого я предлагаю использовать этот селектор CSS, чтобы сделать его специфичным для элемента # add-form, а также исключить использование! Important:
#add-form.ui-panel.ui-panel-dismiss{
width:50%;
}