मैं डी 3 में एक बल निर्देशित ग्राफ पर काम कर रहा हूं। मैं माउसओवर नोड, इसके लिंक और उसके बच्चे नोड्स को अन्य सभी नोड्स और निचले अस्पष्टता के लिंक सेट करके हाइलाइट करना चाहता हूं।चयनित नोड, उसके लिंक और उसके बच्चों को डी 3 बल में निर्देशित करें
इस उदाहरण में, http://jsfiddle.net/xReHA/, मैं सभी लिंक और नोड्स को फीका करने में सक्षम हूं, फिर कनेक्टेड लिंक में फीका है, लेकिन, अब तक, मैं जुड़े हुए नोड्स में सुंदर ढंग से फीका नहीं कर पाया वर्तमान में mouseover'd नोड का।
function fade(opacity) {
return function(d, i) {
//fade all elements
svg.selectAll("circle, line").style("opacity", opacity);
var associated_links = svg.selectAll("line").filter(function(d) {
return d.source.index == i || d.target.index == i;
}).each(function(dLink, iLink) {
//unfade links and nodes connected to the current node
d3.select(this).style("opacity", 1);
//THE FOLLOWING CAUSES: Uncaught TypeError: Cannot call method 'setProperty' of undefined
d3.select(dLink.source).style("opacity", 1);
d3.select(dLink.target).style("opacity", 1);
});
};
}
मैं एक Uncaught TypeError: Cannot call method 'setProperty' of undefined
त्रुटि हो रही है जब मैं एक तत्व मैं source.target से लोड पर अस्पष्टता सेट करने का प्रयास:
इस कोड से महत्वपूर्ण कार्य है। मुझे संदेह है कि यह नोड को डी 3 ऑब्जेक्ट के रूप में लोड करने का सही तरीका नहीं है, लेकिन लिंक के लक्ष्य या स्रोत से मेल खाने वाले लोगों को खोजने के लिए मुझे फिर से नोड्स पर फिर से घुमाने के बिना इसे लोड करने का कोई और तरीका नहीं मिल रहा है। प्रदर्शन को उचित रखने के लिए, मैं आवश्यकतानुसार सभी नोड्स पर फिर से शुरू नहीं करना चाहता हूं।
मैं http://mbostock.github.com/d3/ex/chord.html से लिंक fading का उदाहरण ले लिया:
हालांकि, कि कैसे जुड़ा बच्चे नोड्स को बदलने के लिए नहीं दिखाती है।
कैसे हल करने या इस को सुधारने के लिए किसी भी अच्छा सुझाव जिस upvoted हो जाएगा :)
यह महान @mbostock काम करता है, बहुत बहुत धन्यवाद: डी मैंने आपके समाधान के साथ [jsfiddle] (http://jsfiddle.net/xReHA/1/) अपडेट किया है। –
लिंक पर शैली के लिए एक अनावश्यक कॉल हटा दी गई: http://jsfiddle.net/xReHA/2/ –
माइक, वह समाधान बस सुंदर था। मैं तो बस कह रहा हूं'। – Vivek