2012-10-09 31 views
47

मैं समझ नहीं पा रहा हूं कि कैसे d3.call() काम करता है और इसका उपयोग कब और कहां किया जाता है। Here वह ट्यूटोरियल लिंक है जिसे मैं पूरा करने की कोशिश कर रहा हूं।जावास्क्रिप्ट लाइब्रेरी डी 3 कॉल फ़ंक्शन

किसी विशेष रूप से समझाने कृपया क्या इस टुकड़े

var xAxis = d3.svg.axis() 
       .scale(xScale) 
       .orient("bottom"); 

svg.append("g").call(xAxis); 
+0

लिंक आपके द्वारा दी गई बताता है कि 'कॉल()' करता – Ibu

+9

हां, लेकिन फिर भी मैं svg.append ("g") प्राप्त करने में सक्षम नहीं हूं .call (xAxis); कर रहा है :( – Andy897

+1

https://github.com/d3/d3-selection/blob/master/README.md#selection_call –

उत्तर

75

कर रहा है मुझे लगता है कि चाल यहां यह समझना होगा कि xAxis एक समारोह है कि एसवीजी तत्वों का एक गुच्छा उत्पन्न करता है। वास्तव में यह समारोह d3.svg.axis() द्वारा लौटाया गया है। स्केल और ओरिएंट फ़ंक्शंस चेनिंग सिंटैक्स का हिस्सा हैं (यहां से अधिक पढ़ें: http://alignedleft.com/tutorials/d3/chaining-methods/)।

तो svg.append("g") एसवीजी समूह तत्व को एसवीजी में जोड़ता है और चयन के रूप में स्वयं को संदर्भ देता है (यहां काम पर एक ही श्रृंखला वाक्यविन्यास)। जब आप चयन पर call का उपयोग करते हैं तो आप g चयन के तत्वों पर xAxis नामक फ़ंक्शन को कॉल कर रहे हैं। इस मामले में आप नए बनाए गए और संलग्न समूह, g पर धुरी फ़ंक्शन चला रहे हैं, xAxis

xAxis(svg.append("g")); 

या:

हैं कि अभी भी मतलब नहीं है, वाक्य रचना के ऊपर के बराबर है

d3.svg.axis() 
     .scale(xScale) 
     .orient("bottom")(svg.append("g")); 
+0

एक svg.axis() के जी तत्वों को कैसे संपादित करेगा? मेरे पास ऐसे लेबल हैं जो खून बहते हैं एक-दूसरे में और मैं उनके लिए एक परिवर्तन लागू करना चाहता हूं। लेकिन मैं उन तत्वों तक पहुंच नहीं पा रहा हूं – CQM

+0

यहां उत्तर दें http://stackoverflow.com/questions/12825630/assign-ids-to-individual-axis- टेक्स्ट-एलिमेंट्स/12849772 # 12849772 टेक्स्ट चुनने या तत्वों को टिकने के बाद, यदि आप चाहें तो ट्रांसफॉर्म लागू करने में सक्षम होना चाहिए। – Superboggly

+0

क्या xAxis को कॉल करने के लिए एक या दूसरे को कोई अंतर है? – st4rgut

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