Набор кнопок/Панель кнопок в Додзё

Мне нужно предоставить моим пользователям выбор из двух вариантов.

Я хочу, чтобы это были красивые большие кнопки, а не RadioButton., где метка обычно представляет собой не кликабельный элемент, а обычный маленький кружок, по которому можно щелкнуть.

e.g.

введите здесь описание изображения

Когда пользователь нажимает на каждый из них, вызывается функция с другой переменной, так что в другом месте моего приложения может происходить какая-то другая магия.

Я видел как это можно сделать в jQuery, так что это будет моим запасным планом.

Видя, как я пытаюсь изучить Dojo, и 90% приложения в настоящее время построено на Dojo (1.7), я надеялся, что в Dojo будет аналогичный компонент.

Я предполагаю, что могу разместить две отдельные кнопки Dojo рядом друг с другом. , и иметь глобальную переменную, улавливающую, какая из них в данный момент была нажата в последний раз, и когда это произошло, убедитесь, что другая кнопка отключена, но это не звучит так элегантно.

Каков наилучший способ добиться выбора из двух кнопок, когда при нажатии одной из них другая кнопка отключается, а функция запускается с определенным значением?


person jakc    schedule 29.12.2012    source источник


Ответы (1)


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

<button data-dojo-type="dijit/form/ToggleButton" id='toggle1' data-dojo-props="iconClass:'dijitCheckBoxIcon', checked: true">
<button data-dojo-type="dijit/form/ToggleButton" id='toggle2' data-dojo-props="iconClass:'dijitCheckBoxIcon', checked: false">​

и этот джаваскрипт:

​dojo.require('dojo.parser');
dojo.require('dojo.form.ToggleButton');

dojo.ready(function(){
    dojo.parser.parse();
    dojo.connect(dijit.byId('toggle1'),'onChange',function(){
        dijit.byId('toggle2').set('checked',false);
        //what you want to do
    });
    dojo.connect(dijit.byId('toggle1'),'onChange',function(){
        dijit.byId('toggle2').set('checked',false);
        //what you want to do
    });

});​

обратите внимание, что я не проверял код, поэтому могут потребоваться некоторые изменения

person Ricardo Garza V.    schedule 29.12.2012