Альтернатива dojoType

#javascript #css #xhtml #dojo

#javascript #css #xhtml #dojo

Вопрос:

 <input type="text" name="date" value="" dojoType="dijit.form.DateTextBox" required="true" />
  

Я хочу избегать dojoType по двум причинам:

  • parseonload заставляет его «прыгать» при загрузке (вы видите системные поля ввода по умолчанию в течение некоторого времени при загрузке)

  • Он не проверяет HTML

итак, какова альтернатива?

Ответ №1:

Существует несколько разных подходов к вашей проблеме:

Используйте программное создание виджетов dijit. вместо указания dojoType для элементов вы можете создавать и размещать виджеты с помощью javascript программно. В справочных документах dojo вы заметите, что большинство компонентов имеют декларативный пример и программный пример (например, dijit.form.Выберите). Программный стиль позволяет избежать размещения компонентов dijit непосредственно в вашей html-разметке.

Кроме того, Dojo 1.6 предлагает новый стиль размещения атрибутов в декларативных компонентах. Вместо указания dojoType вы можете использовать data-dojo-type. Более подробную информацию об этой новой функции можно найти здесь.

Проблему parseOnLoad можно решить несколькими способами. Один из способов — скрывать содержимое страницы до завершения синтаксического анализа. Тестировщик тем dijit делает это. Вы заметите, что при загрузке страницы вы сначала увидите сообщение о загрузке страницы, затем полностью заполненная страница исчезнет.

Ответ №2:

Чтобы иметь допустимый HTML, начиная с Dojo 1.6, вы можете использовать data-dojo-XXX атрибуты вместо dojoXXX них. Спецификация HTML5 резервирует префикс «data-» для такого рода определяемого пользователем атрибута.

http://dojotoolkit.org/features/1.6/html5data-attributes