Додзе прикрепить кнопку, как jQuery - PullRequest
2 голосов
/ 07 октября 2011

В jQuery, если я хочу прикрепить стиль кнопки к любому тегу, я могу сделать это:

$("a").button();

как мне прикрепить стиль кнопки с помощью dojo к любому тегу?

Ответы [ 2 ]

3 голосов
/ 11 октября 2011

Способ Dojo заключается в декларативном или программном создании элементов.Вот декларативный пример создания кнопки с использованием атрибута dojoType:

<input id="button1" dojoType="dijit.form.Button" label="Do it!"/>

Вот программный пример, при котором кнопка создается и вставляется в DOM:

var button = new dijit.form.Button({ label: "Click me!"}, "node_id");

Объект, переданный в качестве первого аргумента, содержит свойства для создания экземпляра элемента управления (наша кнопка в данном случае).Второй аргумент - это узел DOM, в который будет вставлен новый элемент (или, скорее, присоединен к нему - оригинальный узел в значительной степени заменен).

Для другого примера (специально для кнопок, но концепция похожа,см. http://dojotoolkit.org/reference-guide/dijit/form/Button.html#dijit-form-button)

Что касается вашего вопроса об использовании «любого» тега (не уверен, что это то, к чему вы стремитесь), вы можете определить любой HTML-тег с идентификатором и заменить его кнопкой, используя этиметоды. Например:

<h3 id="button1" dojoType="dijit.form.Button" label="Do it!"></h3>

также будет проанализирован Dojo и работает.

Если вы новичок в Dojo, вы должны знать, что подход совсем другой, если вы приехали изjQuery. Вместо включения файлов Javascript в ваш HTML, Dojo имеет очень модульную систему для включения кода с использованием dojo.require (), поэтому, например, вам нужно будет указать dojo.require ("dijit.form.Button") послевключая dojo.js (и укажите следующий атрибут

djConfig="parseOnLoad: true"

в теге сценария для включения dojo.js для автоматического анализа виджетов dijit).

1 голос
/ 15 октября 2011

Вот возможный эквивалент вашего jQuery в dojo:

// Select all 'a' tags.
dojo.query('a').forEach(function(element) {

    // Attach a button to each 'a' tag.
    var button = new dijit.form.Button({
        onClick: function(){ location.href = element.href; }
    }, element);
    button.startup();
});

Демонстрация здесь: http://jsfiddle.net/rLtNq/. Обратите внимание на включение файла claro.css, и, как отмечает mydoghasworms, вам нужно dojo.require класс кнопки.

...