d3.js

2014-07-09 15 views
8

के साथ एक ही क्लिक ईवेंट पर दो फ़ंक्शन कॉल करना क्या कोई जानता है कि d3.js के साथ एक ही ईवेंट पर दो अलग-अलग फ़ंक्शंस कॉल करना संभव है? मुझे पता है कि आप दोनों को अर्धविराम से अलग करके जावास्क्रिप्ट में ऐसा कर सकते हैं लेकिन मेरे विशेष मामले के साथ ऐसा करने में सफल नहीं रहे हैं। मैं टूल-टिप्स के साथ एक बल-लेआउट ग्राफ का उपयोग कर रहा हूं और इसमें दो अलग-अलग टूल-टिप्स हैं जिनका मैं उपयोग करना चाहता हूं। माउसओवर पर, टूल-टिप नोड का नाम कहता है और फिर क्लिक पर, मैं इसका विवरण दिखाने के लिए एक दूसरा टूल-टिप चाहता हूं। उस क्लिक पर हालांकि, मैं पहले टूल टिप को दूर जाना चाहता हूं।d3.js

  .on("click", describe_tip.show) 
     .on("mouseover", tip.show) 
     .on("mouseout", tip.hide) 

मैं describe_tip.show के साथ tip.hide कॉल करना चाहते हैं लेकिन सही सिंटैक्स पता नहीं है: यहाँ है कि मैं उपयोग कर रहा हूँ कोड के ब्लॉक है।

कोई भी सुझाव या सहायता की सराहना की जाएगी।

उत्तर

7

आप दो फ़ंक्शन कॉल को लपेट सकते हैं जिन्हें आप किसी अज्ञात फ़ंक्शन में बनाना चाहते हैं, उदा।

.on("click", function(d){ 
    describe_tip.show(d); 
    tip.hide(d); 
}) 

ध्यान दें कि describe_tip.show और tip.hide दोनों के बाद से डेटा की आवश्यकता d एक तर्क के रूप में, आप उन्हें करने के लिए है कि पारित करने के लिए की जरूरत है। याद है कि जब .on("click", callback) को एक गुमनाम कॉलबैक फ़ंक्शन गुजर, डी 3 से गुजरता है:

वर्तमान गृहीत घ और वर्तमान सूचकांक मैं, वर्तमान डोम तत्व के रूप में इस संदर्भ के साथ

को callback फ़ंक्शन (docs)।

+0

बहुत बढ़िया काम करता है! धन्यवाद। मैं 'description_tip.show' और 'tip.hide' के लिए' (डी)' शामिल करने में विफल रहा –