/ / निर्धारित करें कि क्या कोई तत्व jQueryUI विजेट है - jquery-ui, विजेट

यह निर्धारित करें कि कोई तत्व एक jQueryUI विजेट है - jquery-ui, विजेट

मैंने विजेट फैक्टरी का उपयोग करके एक jquery-ui विजेट लिखा है ...

मुझे कोड में यह निर्धारित करने में सक्षम होना चाहिए कि क्या तत्व पहले से ही एक विजेट है या नहीं ...

मेरा निवेश विजेट विजेट के साथ बनाया गया है

 $("#container").investmentGrid()

मुझे कोड में कहीं और निर्धारित करने में सक्षम होने की आवश्यकता है यदि $ ("# कंटेनर") पहले से ही एक निवेश ग्रिड है

उत्तर:

उत्तर № 1 के लिए 6

आप तत्व की क्वेरी कर सकते हैं jQuery.data() समारोह, जैसे:

if ($("#container").data("investmentGrid")) {
...
}

जवाब के लिए 5 № 2

आप विजेट फैक्ट्री का उपयोग करते समय आपके लिए बनाया गया छद्म चयनकर्ता आज़मा सकते हैं। $(":namespace-widgetname")


जवाब के लिए 3 № 3

@ दान-कहानी का उस समय जवाब हो सकता थाइसका उत्तर दिया, लेकिन मैंने पाया है कि यह विधि अब और काम नहीं करती है। ठीक है, पूरी तरह से नहीं। कम से कम jUIUI 1.10 के साथ नहीं। प्रलेखन के अनुसार http://api.jqueryui.com/jQuery.widget/ "इंस्टेंस" अनुभाग में, अब आपको विजेट का पूरा नाम होना चाहिए।

उदाहरण के लिए, यदि आप इसके साथ अपना विजेट कारखाना बनाते हैं:

$.widget("Boycs.investmentGrid", ...);

फिर, यह जाँचने के लिए कि कंटेनर में है या नहीं, आप इसकी जाँच करेंगे:

if ($("#container").data("Boycs-investmentGrid"))
{
...
}

यह केवल नाम का उपयोग करने के लिए पर्याप्त नहीं है।


उत्तर के लिए 1 № 4

@Boycs: मेरी समझ के अनुसार, विजेट फैक्ट्री का उपयोग आपको एक ही तत्व पर कई बार प्लगइन को इंस्टेंट करने से बचाता है। (संदर्भ: http://jqueryui.pbworks.com/widget-factory)

इसके अलावा अगर आप पुष्टि करना चाहते हैं कि क्या "कंटेनर" पहले से ही एक निवेश ग्रिड है तो आप अपने प्लगइन कोड के अंदर से निम्न विकल्प आज़मा सकते हैं:

this.element.data ("InvestmentGrid") === यह;

अधिक जानकारी के लिए आप docs.jquery.com/UI_Developer_Guide का संदर्भ ले सकते हैं


उत्तर के लिए 1 № 5

JQuery यूआई के वर्तमान संस्करण (मैं 1.11.x के साथ इसकी पुष्टि कर सकता हूं) आपको विजेट के उदाहरण के माध्यम से क्वेरी करने की अनुमति देता है instance() तरीका। यह तब इस तरह दिखेगा:

$("#container").investmentGrid("instance")

यदि तत्व में ए नहीं है investmentGrid विजेट सौंपा गया है, आपको मिलेगा undefined वापस।

आप इसके बजाय कॉल का उपयोग भी कर सकते हैं:

$(#container").is(":data("namespace-investmentGrid")")

इसका फायदा यह है, कि यह विजेट के लोड न होने पर भी काम करता है।