Вопрос

Я пытаюсь использовать флажки Dojo (1.3) для отображения / скрытия столбцов в сетке Dojo, которая отображается под флажками. Я получил эту функциональность, чтобы работать нормально, но я хотел организовать свои чек-боксы немного лучше. Поэтому я попытался положить их в стол. Моя функция dojo.addOnLoad выглядит следующим образом:

dojo.addOnLoad(function(){
    var checkBoxes = [];
    var container = dojo.byId('checkBoxContainer');
    var table = dojo.doc.createElement("table");
    var row1= dojo.doc.createElement("tr");
    var row2= dojo.doc.createElement("tr");
    var row3= dojo.doc.createElement("tr");

    dojo.forEach(grid.layout.cells, function(cell, index){
        //Add a new "td" element to one of the three rows
    });

    dojo.place(addRow, table);
    dojo.place(removeRow, table);
    dojo.place(findReplaceRow, table);

    dojo.place(table, container);
});

Что расстраивает, так это

<Ол>
  • Используя отладчик Dojo, я вижу, что HTML-код правильно генерируется для таблицы.
  • Я могу взять этот HTML-код и поместить только таблицу в пустой HTML-файл, и он прекрасно отображает флажки в таблице.
  • Страница корректно отображается в Firefox, но не в IE6.
  • Генерируемый HTML-код выглядит так:

    <div id="checkBoxContainer">
        <table>
            <tr>
                <td>
                    <div class="dijitReset dijitInline dijitCheckBox"
                        role="presentation" widgetid="dijit_form_CheckBox_0"
                        wairole="presentation">
                        <input class="dijitReset dijitCheckBoxInput"
                            id="dijit_form_CheckBox_0"
                            tabindex="0" type="checkbox"
                            name="" dojoattachevent=
                            "onmouseover:_onMouse,onmouseout:_onMouse,onclick:_onClick"
                            dojoattachpoint="focusNode" unselectable="on"
                            aria-pressed="false"/>
                    </div>
                    <label for="dijit_form_CheckBox_0">
                        Column 1
                    </label>
                </td>
                <td>
                    <div class="dijitReset dijitInline dijitCheckBox"
                        role="presentation" widgetid="dijit_form_CheckBox_1"
                        wairole="presentation">
                        <input class="dijitReset dijitCheckBoxInput"
                            id="dijit_form_CheckBox_1"
                            tabindex="0" type="checkbox"
                            name="" dojoattachevent=
                            "onmouseover:_onMouse,onmouseout:_onMouse,onclick:_onClick"
                            dojoattachpoint="focusNode" unselectable="on"
                            aria-pressed="false"/>
                    </div>
                </td>
            </tr>
            <tr>
                ...
            </tr>
        </table>
    </div>
    

    Я бы написал на официальных форумах DOJO, но там написано, что они устарели и сейчас используют список рассылки. Они сказали, что если список рассылки не работает для вас, используйте StackOverflow.com. И вот я здесь!

    Это было полезно?

    Решение

    Похоже, вы забыли создать элемент <tbody>.

    Другие советы

    Я также сталкивался с этой проблемой при попытке создать таблицу с помощью dojo в IE7. HTML есть, но ничего не отображается. Опять же, решение заключается в использовании тегов thead, tbody.

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top