2010-11-09 14 views
9

मैं स्टाइल प्रयोजनों के लिए नीचे दिए गए विजेट को कई वर्गों जोड़ना चाहते हैं:मैं डोजो विजेट में कक्षा कैसे जोड़ूं?

var filteringSelect = new dijit.form.FilteringSelect({ 
    id: "test", 
}, 
"test"); 

मैं यह कैसे पूरा होगा?

<div tabindex="-1" wairole="combobox" dojoattachpoint="comboNode" dojoattachevent="onmouseenter:_onMouse,onmouseleave:_onMouse,onmousedown:_onMouse" id="widget_test" class="dijit dijitReset dijitInlineTable dijitLeft dijitComboBox" role="combobox" widgetid="test"> 
     <div style="overflow: hidden;"> 
      <div dojoattachevent="onmousedown:_onArrowMouseDown,onmouseup:_onMouse,onmouseenter:_onMouse,onmouseleave:_onMouse" wairole="presentation" dojoattachpoint="downArrowNode" class="dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton" role="presentation"> 
       <div class="dijitArrowButtonInner"> 
        &thinsp; 
       </div> 
       <div class="dijitArrowButtonChar"> 
        ▼ 
       </div> 
      </div> 
      <div class="dijitReset dijitValidationIcon"> 
       <br> 
      </div> 
      <div class="dijitReset dijitValidationIconText"> 
       Χ 
      </div> 
      <div class="dijitReset dijitInputField"> 
       <input type="text" waistate="haspopup-true,autocomplete-list" wairole="textbox" dojoattachpoint="textbox,focusNode" dojoattachevent="onkeypress:_onKeyPress,compositionend" class="dijitReset" autocomplete="off" role="textbox" aria-haspopup="true" aria-autocomplete="list" aria-invalid="false" id="test" tabindex="0" aria-required="true" value="United States"><input type="text" style="display: none;" name=""> 
      </div> 
     </div> 
    </div> 

उत्तर

9
dojo.addClass(filteringSelect.domNode, "yourClass"); 

यह भी है जिसमें एक डोम नोड पहले से ही शामिल है "youClass" एक CSS वर्ग के रूप में तो यह है कि डुप्लिकेट नहीं जोड़े जाते हैं स्थितियों संभालती है:

यहाँ वास्तविक एचटीएमएल है। dojo भी dojo.removeClass() और dojo.toggleClass() के साथ सीएसएस वर्ग प्रबंधन को संभालने के लिए अन्य विधियां प्रदान करता है।

http://staging.dojotoolkit.org/reference-guide/dojo/addClass.html

+0

तो यह dojo.addClass होगा (filteringSelect.test, "classname"); या यह इनपुट टैग होगा? – Amen

+0

नहीं, आपको फ़िल्टरिंग करना चाहिए। Select.domNode क्योंकि domNode प्रॉपर्टी आपके एचटीएमएल में वास्तविक डोम नोड का संदर्भ प्रदान करती है। फ़िल्टरिंग चयन करें। परिणामस्वरूप एनपीई होगा। – linusthe3rd

+0

इसके अलावा, फ़िल्टरिंग चयन एक डिजीट विजेट का संदर्भ प्रदान करता है, जो आपको डीजीआईटी एपीआई विधियों का एक गुच्छा प्रदान करता है - वास्तविक HTML DOM तत्व नहीं। – linusthe3rd

1

आगे काम करने के तरीकों:

(1) प्रक्रियात्मक संस्करण, स्क्रिप्ट से विजेट बनाने:

var filteringSelect = new dijit.form.FilteringSelect({ 
    id: "test", 
    class: "myClassName" 
}, 
"test"); 

(2) तो आप बस "वर्ग" विशेषता सेट करते हैं, यह dijit/_WidgetBase.js में सेटर फ़ंक्शन _setClassAttr में कॉल करेगा, जो वही करता है जो आप चाहते हैं:

<div data-dojo-type="dijit/form/SomeThing" class="myClassName"></div> 

(3) आप विजेट के डोजो गुण सेट कर सकते हैं यहाँ के रूप में:

<div data-dojo-type="dijit/form/SomeThing" data-dojo-props="class: 'myClassName'"></div> 
संबंधित मुद्दे