2009-12-04 7 views
11

वहाँ ASP.Net अजाक्स के $ लगता है() फ़ंक्शन का एक JQuery बराबर है?

$() != $find() 

उत्तर

2

वहाँ एक 1to1 बराबर नहीं है, लेकिन क्या आप चाहते हैं $ ('चयनकर्ता') विभिन्न selectors

$find('MyComponent') would be $('#MyComponent') 

$find('MyComponent',div) would be $(div).find('#MyComponent') 
1

आप एक तत्व को खोजने के लिए चाहते हैं पर

चेक बाहर docs है जेनरेट क्लाइंट आईडी (ctl00_RealId) के बजाय इसकी एएसपी.NET कोड आईडी द्वारा आप इस फ़ंक्शन का उपयोग कर सकते हैं। यह सिर्फ तत्वों एक आईडी कि _{the real ID here} के साथ समाप्त होता है के लिए लग रहा है:

var $$ = function (id, context) { 
    var $ = (jQuery) ? jQuery : return ; 
    var el = $("#" + id, context); 
     if (el.length < 1) 
     el = $("[id$=_" + id + "]", context); 
    return el; 
} 

उदाहरण के लिए, अपने कोड में अपने आईडी pnlSuccess, एक पैनल का कहना है:

<asp:Panel ID="pnlSuccess" runat="server"></asp:Panel> 

लेकिन गाया कोड में यह के रूप में बाहर आता है: ctl00_content_ctl00_pnlSuccess

कॉलिंग $$("pnlSuccess") उस पैनल को मिलेगा।

+0

यह उपयोगकर्ता नियंत्रण स्थितियों में बहुत अविश्वसनीय हो सकता है जहां बहुत से नियंत्रण एक ही आईडी के साथ समाप्त हो सकते हैं लेकिन एक अलग उपसर्ग –

+0

है, उस स्थिति में, 'संदर्भ' का उपयोग करके अधिक समझदारी होगी। –

+2

yup। मुझे पता है कि। असल में मैं नियंत्रण खोजने के लिए $ ("इनपुट [नाम * = pnlSuccess]) का उपयोग कर रहा हूं। मैं वास्तव में जो वस्तु चाहता हूं वह वह ऑब्जेक्ट है जो $() लौटाता है। ऐसा लगता है कि ऑब्जेक्ट जो $ (एएसपी) में वापस आती है। नेट अजाक्स ऑब्जेक्ट से भिन्न है कि Jquery रिटर्न में $()। टेलीरिक कंट्रोल का उपयोग करते समय मैंने निश्चित रूप से यह देखा है। – pauldomag

1

मैं सिर्फ सीधे बात करने के लिए, निम्नलिखित, कोई अव्यवस्था, कोई उपद्रव करना चाहते हैं।

$('#' + <%=myControl.ClientID%>) 
+0

यह मानता है कि आप उस पृष्ठ पर हैं जो आपके द्वारा प्रदान किया गया कोड बाहरी जावास्क्रिप्ट फ़ाइल में नहीं है। –

+2

yup। I जानते है कि।असल में मैं नियंत्रण खोजने के लिए $ ("इनपुट [नाम * = pnlSuccess]) का उपयोग कर रहा हूं। मैं वास्तव में जो वस्तु चाहता हूं वह वह ऑब्जेक्ट है जो $() लौटाता है। ऐसा लगता है कि ऑब्जेक्ट जो $ (एएसपी) में वापस आती है। नेट अजाक्स ऑब्जेक्ट से अलग है कि Jquery रिटर्न में $()। टेलीरिक कंट्रोल का उपयोग करते समय मैंने निश्चित रूप से यह देखा। – pauldomag

+0

ऐसा इसलिए है क्योंकि $ find() सिर्फ एक डोम एलिमेंट देता है, और $() एक jQuery ऑब्जेक्ट देता है जो डोम तत्वों की एक सरणी को लपेटता है , फिर भी, $() उतना ही उपयोगी है, शायद अधिक। –

8

$find रिटर्न DIV तत्व से संबंधित AJAX के घटक है, और नहीं DOM तत्व के बाद से नहीं है। आप अपनी खुद की प्लगइन बना सकते हैं जो खोज विधि को शॉर्टकट करता है।

माइक्रोसॉफ्ट डोम के लिए अपने ASP.NET AJAX घटकों से जोड़ने के लिए एक मार्ग के रूप $find बनाया।

+1

अंत में कोई जानता है '$ find()' का सही उपयोग –

1

मैं जानता हूँ कि यह एक LOOOOOOOONG समय से अपेक्षित है, लेकिन मुझे लगता है कि मैं समाधान की तरह आप के लिए देख रहे हैं। अगर मैं सही हूँ, तुम एक $find jQuery विकल्प की तलाश कर रहे हैं क्योंकि आप तत्व (जो $find के रूप में जहाँ तक मुझे पता है, लेकिन jQuery के साथ भयानक है के रूप में चयनकर्ताओं नहीं है) की आईडी पता नहीं है। मैं टेलीरिक नियंत्रणों का उपयोग किसी शेयरपॉइंट पेज पर कर रहा हूं, इसलिए मेरी ऑब्जेक्ट आईडी कुछ लंबी पागल गड़बड़ी है, और चूंकि शेयरपॉइंट 2010 .NET 3.5 पर है, इसलिए मैं एक स्थिर आईडी का उपयोग नहीं कर सकता।

समाधान सरल है, लेकिन यह कुछ समय के लिए मेरे दिमाग racked। $find() आईडी द्वारा खोज रहा है, जो सौभाग्य से हम jQuery के माध्यम से एक स्ट्रिंग के रूप में वापस आ सकते हैं: $("elem").attr("id")। तो मूल रूप से हम जो करते हैं वह $find फ़ंक्शन के अंदर jQuery का उपयोग करता है और यह काम करता है। यहाँ मेरी परियोजना से एक नमूना है:

var contextMenu = $find($("[id*=mnuContext]").attr("id")); 

यह मेरे लिए काम किया, और मुझे बाहर मेरी SharePoint समाधान के बाकी के साथ एक बहुत मदद करने के लिए जा रहा है।

संबंधित मुद्दे