#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-» для такого рода определяемого пользователем атрибута.