2009-02-12 14 views
7

एक डीवी छुपा करना जावास्क्रिप्ट में काफी आसान होगा, लेकिन क्या ऐसा करने के लिए कुछ रेल-वाई तरीका है? मैं निश्चित रूप से आंशिक (.erb) से जावास्क्रिप्ट को कॉल करके इसे करने के कुछ तरीकों के बारे में सोच सकता हूं, लेकिन मैं किसी भी जावास्क्रिप्ट को बिल्कुल लिखना नहीं चाहूंगा। मुमकिन?एक डीआईवी छुपाएं [रेल]

संपादित करें: पृष्ठ लोड होता है और मुझे लगता है (ठीक है, पर) एक अजाक्स कॉल के बाद DIV को छिपाने के लिए चाहते हैं, तो मैं उन render :update ब्लॉकों में से एक में हूँ।

+0

कैसे/जब आप इसे छिपा चाहते हैं? लोड पर, किसी घटना के बाद, या अजाक्स कॉल के बाद? –

+0

अब प्रश्न संपादित कर रहे हैं –

+0

धन्यवाद लुका। यह बुरा क्यों है? कृपया विस्तृत करें ताकि मैं जान सकूं कि आपके पास कोई बिंदु है या सिर्फ ranting हैं। –

उत्तर

11

या, सही अपने ध्यान में रखते हुए:

एक वर्ग द्वारा निर्दिष्ट div के लिए:

<%= link_to_function "Toggle", "$('.some_div').toggle()" %> 

एक आईडी द्वारा निर्दिष्ट के लिए div:

<%= link_to_function "Toggle", "$('#some_div').toggle()" %> 

(नोटिक ई-हैश चिह्न)

वर्ग के लिए जोड़ा गया अवधि विशिष्ट div और आईडी विशिष्ट div को हैश

+0

तो यह भी सर्वर-साइड तक नहीं पहुंच पाएगा, है ना? –

+0

हाँ, शुद्ध जेएस। एक div छुपाएं निश्चित रूप से जेएस का डोमेन है; पीछे हटना और एक div को छिपाने के लिए सर्वर के आगे ओवरकिल है। –

+0

इसे प्यार करें। धन्यवाद। –

1

वास्तव में रेलों को नहीं जानते हैं, लेकिन क्या आप बस शैली जैसे कुछ आउटपुट कर सकते हैं = "प्रदर्शन: कोई नहीं;" div टैग में?

+0

मुझे रेल या तो नहीं पता :), लेकिन मेरी भावना यह है कि मैं नहीं कर सकता .. मैं केवल उन चीजों को स्पर्श कर सकता हूं जो एक डीआईवी या एचटीएमएल पेज के अन्य आईडी एड्रेस करने योग्य टुकड़े के भीतर हैं। –

+0

बमर :(- अनुमान है कि मुझे उस बिंदु पर टूलबॉक्स से शायद jquery मिल जाएगा। – seanb

+0

नाह, इसमें डिफ़ॉल्ट रूप से प्रोटोटाइप और स्क्रिप्लिअस (एसपी) है, लेकिन सादा जेएस के साथ भी यह आसान है। लेकिन अब यहां प्रतिक्रियाओं के साथ (ऊपर) मैं जाने के लिए तैयार हूं। –

3

अपने नियंत्रक से एक आर.जे. अद्यतन प्रस्तुत करना करने के लिए:

respond_to do |format| 
    format.html 
    format.js { render(:update) { |page| page.hide('element_id') } } 
end 

आप अन्य आर.जे. प्रतिक्रिया के लिए API देख सकते हैं।

+0

बहुत बढ़िया, शानदार प्रतिक्रिया। धन्यवाद। –

6
render :update do |page| 
    page.hide 'div_id' 
end 

आप आप में इस फेंक कर सकते हैं ब्लॉक या एक आर.जे. टेम्पलेट respond_to।

एक अन्य उपयोगी टिप, एक ही सिंटैक्स का उपयोग:

render :update do |page| 
    page << 'arbitrary javascript code goes here.' 
end 
1
<%= link_to_function "Toggle", visual_effect(:toggle_blind, "some_div") %> 
संबंधित मुद्दे