سؤال

أحاول استخدام مربعات اختيار 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);
});

ما هو محبط هو:

  1. باستخدام مصحح أخطاء Dojo أستطيع أن أرى أنه يتم إنشاء HTML بشكل صحيح للجدول.
  2. يمكنني أخذ HTML هذا ووضع الجدول فقط في ملف HTML فارغ ويعرض مربعات الاختيار في الجدول بشكل جيد.
  3. يتم عرض الصفحة بشكل صحيح في 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 موجود ولكن لم يتم تقديم أي شيء.مرة أخرى، الحل هو استخدام علامات tbody.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top