मेरे पास यह कोड है:

<% @hello = "hello world" %>
<td class="text"><%= link_to project.name, project,
                  :onmouseout=>"hidetooltip()",
                  :onmouseover=>"showDescription()"%>
</td>

showDescription JavaScript फ़ंक्शन एक स्ट्रिंग पैरामीटर लेता है। मैं @hello को showDescription के पैरामीटर के रूप में पास करना चाहता हूं। मैंने सब कुछ करने की कोशिश की और इसे काम करने के लिए प्रतीत नहीं होता।

0
Minh 4 नवम्बर 2011, 12:22

2 जवाब

सबसे बढ़िया उत्तर

हेयर यू गो:

<% @hello = "hello world" %>
<%= link_to project.name, project, :onmouseout=>"hidetooltip()",
                                   :onmouseover=>"showDescription(#{ @hello.to_json })"%>
2
apneadiving 4 नवम्बर 2011, 13:41
यह सही है? ऐसा लगता है कि अल्पविराम या to_json गायब है। (बीटीडब्ल्यू, { } में गैर-मुहावरेदार रिक्त स्थान क्यों?)
 – 
tokland
4 नवम्बर 2011, 13:13
@टोकलैंड: यह सिर्फ टेक्स्ट है, इसलिए to_json का उपयोग करने की आवश्यकता नहीं है
 – 
apneadiving
4 नवम्बर 2011, 13:14
1
स्पष्ट होने के लिए, ऊपर मेरी टिप्पणी में मेरा मतलब निश्चित रूप से एक उद्धरण (') था, अल्पविराम नहीं। मैं अभी भी नहीं देखता कि कैसे showDescription(hello world) वैध JS हो सकता है।
 – 
tokland
4 नवम्बर 2011, 13:23
मुझे इसके साथ कुछ अनुभव है, मैं अनगिनत अवसरों पर खुद को इसी बग में गिर गया हूं :-) मेरे पास '# {var}' के खिलाफ कोई मजबूत राय नहीं है, लेकिन मेरी सलाह var.to_json (पूर्णांक के साथ भी) है, इसलिए आप प्रकारों के बारे में एक सेकंड के लिए सोचने की ज़रूरत नहीं है। to_json को रूबी मान-> JS कोड रूपांतरण करने दें। इसके अलावा, कल्पना करें कि @hello के अंदर एक उद्धरण है, बूम।
 – 
tokland
4 नवम्बर 2011, 13:30
@टोकलैंड: आप निश्चित रूप से सही हैं, आगे बढ़ने का यह सबसे अच्छा तरीका है
 – 
apneadiving
4 नवम्बर 2011, 13:42

ऐसा करने का दूसरा तरीका मणि क्लाइंट वैरिएबल का उपयोग कर रहा है। यह आपको इसे आसानी से करने में मदद करता है

0
MQuy 16 सितंबर 2013, 11:20