Iterate DOM elements and apply jquery-ui -


मैंने सभी a तत्वों, इनपुट प्रकार = " जमा करें तत्व, बटन तत्व और एपटीरियन डिवाएं जो कि jquery.ui शैलियां लागू करनी होंगी।

मैंने प्रॉप ('प्रकार') और टैग नामों का उपयोग करने के लिए उपयोग किया है नियंत्रण (i ) .प्रॉप ('प्रकार'); अगर (टी! = अपरिभाषित & amp; amp; t! = "") {यदि (टी। इंडैक्स ("चयन करें")! = "-1") {$ (this) .combobox ();} और अगर (टी। इंडेक्स ("बटन")! = "-1") {$ (यह)। बटन ();}} यदि ($ (यह) .get (0) .tagName == " DIV "& amp; $ (this) .get (0) .id! = Undefined & amp; $ (this) .get (0) .id.toUpperCase () ==" एसीसीशन ") {$ (this) .accordion ({collapsible: true}); else if ($ (this) .get (0) .tagNam ई == "ए" || ($ (This) .get (0) .tagName == "INPUT" & amp; amp; $ (this) .prop ('type') == "सबमिट करें")) {$ (this) .button (); }}); });

जाहिरा तौर पर यह अद्भुत काम कर रहा है यह jquery तैयार फ़ंक्शन मेरे asp.net mvc लेआउट पेज में शामिल है और जब मैं एक नया नियंत्रण जोड़ता हूं तो यह jquery-UI प्रदान किया जाता है।

लेकिन सवाल यह है कि क्या आपने कभी ऐसा कुछ किया है? क्या आपका एक बेहतर तरीका है?

आप अपना कोड थोड़ा सरल बनाने के लिए jQuery का उपयोग करने का लाभ उठा सकते हैं: < / P>

  $ (function () {// आप $ ('a, इनपुट [type = submit], बटन, चयन, .accordion') में रुचि रखने वाले डोम तत्वों को प्राप्त करने के लिए चयनकर्ताओं का उपयोग करें। फ़ंक्शन () {// केवल एक बार jQuery ऑब्जेक्ट बनाएँ, $ (यह) हर बार var $ el = $ (this) करने से बचें; यदि ($ el.is ('a') || $ el.is ('इनपुट $ El.is ('बटन')) $ el.button (); और यदि ($ el.is ('। Accordion')) $ el.accordion ({collapsible: true} ); और अगर ($ el.is ('चुनें')) $ el.combobox ();});});  

लेकिन एक अधिक सरल / पठनीय तरीके ऐसा कुछ हो सकता है:

  $ (फ़ंक्शन () ($ ('a , इनपुट [प्रकार = सबमिट करें], बटन ')। बटन (); $ ('। Accordion ')। एडेरियन ({संकुचित: सत्य}); $ (' चयन करें ')। कॉम्बोबॉक्स ();}); <  

नोट 1: मैंने आपकी परीक्षा की जांच कर दी है अगर Div आईडी accordion के साथ एक सीएसएस वर्ग accordion (चयनकर्ता .accordion ) है। एक तत्व आईडी DOM वृक्ष में अनूठा होना चाहिए, इसलिए यदि आपके पास आईडी accordion के साथ एकाधिक divs हैं, तो उन्हें एक सीएसएस वर्ग accordion द्वारा प्रतिस्थापित करें।

नोट 2: jQuery UI में बॉक्स (एएफएआईके) से कोई कॉम्बोबॉक्स विजेट नहीं है, हो सकता है कि आप

का प्रयोग कर रहे हों

Comments