jqueryui без JavaScript - PullRequest
       11

jqueryui без JavaScript

3 голосов
/ 09 октября 2009

Кто-нибудь использует jQueryUI (например, часть фреймворка CSS) без компонента jQuery? Если вы обслуживали пользователей, у которых нет JavaScript или у которых он отключен и т. Д.

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

или вы использовали бы css framework для создания диалога вручную, возможно ...

Ответы [ 2 ]

4 голосов
/ 02 августа 2011

Я использовал классы пользовательского интерфейса jQuery, чтобы стилизовать вещи «последовательно», когда JavaScript отключен. Вы просто используете классы, которые пользовательский интерфейс jQuery применяет к элементам, и включаете таблицу стилей и ресурсы пользовательского интерфейса jQuery.

Например, если у вас было

<a href="#" id="abutton">This is a button</a>

И вы запустили jQuery UI JavaScript:

$("#abutton").button();

Это изменило бы разметку на:

<a href="#" id="abutton" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" role="button">
    <span class="ui-button-text">This is a button</span>
</a>

Предоставление вам приятной кнопки jQuery UI. Но только после запуска JavaScript это будет применено. Если у пользователя нет / не разрешен JavaScript, вы получите некрасивую ссылку. Вместо этого вы должны использовать классы пользовательского интерфейса jQuery в начале:

<a href="#" id="abutton" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only">This is a button</a>

Он будет иметь базовый стиль jQuery UI до запуска JavaScript (хотя структура иная - диапазона нет, и если у вас изначально был диапазон, он все равно добавляет еще один, что, по-моему, ошибка). Дело в том, что вы хотите, чтобы JavaScript работал без сбоев, потому что он добавляет другие вещи, такие как эффекты наведения мыши (и упомянутый ранее диапазон), так что пользователи, которые имеют JavaScript, получают полный опыт, но вы также хотите использовать jQuery UI классы по умолчанию, потому что вам нужна согласованная тема (даже если она не идеальна на 100%).

Чтобы узнать больше об их CSS-фреймворке, посмотрите http://jqueryui.com/docs/Theming/API.

Если вы хотите, чтобы он НЕ использовал JavaScript, вам понадобится:

  1. Начальная страница, делает пост обратно
  2. Сервер решает, что нужно сделать всплывающее окно, отображает представление с помощью диалогового окна, содержащего все соответствующие наборы диалоговых классов.
  3. Пользователь нажимает кнопку во всплывающем окне, выполняя еще одну запись назад.
  4. Сервер отображает представление без всплывающего окна.

Это ужасно, но вы не можете делать динамический HTML без сценариев, верно ...

3 голосов
/ 09 октября 2009

Я все время использую CSS за пределами jQueryUI; Я считаю, что это обеспечивает гораздо более последовательный внешний вид.

Что касается остальной части вопроса ... что?!

и затем удалить этот класс, когда jQueryUI устанавливает диалог

Как вы планируете запускать jQueryUI («настроить диалог») без включенного JavaScript? Если вы откроете диалог без JavaScript, он не сможет двигаться или закрываться; вы застрянете с гигантским div в центре экрана.

...