[javascript] डी 3 बल निर्देशित ग्राफ़ में चयनित नोड, इसके लिंक और उसके बच्चों को हाइलाइट करें



Answers

Question

मैं डी 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 मिल रहा है Uncaught TypeError: Cannot call method 'setProperty' of undefined जब मैं Source.target से लोड किए गए तत्व पर अस्पष्टता सेट करने का प्रयास करता हूं तो Uncaught TypeError: Cannot call method 'setProperty' of undefined त्रुटि Uncaught TypeError: Cannot call method 'setProperty' of undefined । मुझे संदेह है कि यह नोड को डी 3 ऑब्जेक्ट के रूप में लोड करने का सही तरीका नहीं है, लेकिन लिंक के लक्ष्य या स्रोत से मेल खाने वाले लोगों को खोजने के लिए मुझे फिर से नोड्स पर फिर से घुमाने के बिना इसे लोड करने का कोई और तरीका नहीं मिल रहा है। प्रदर्शन को उचित रखने के लिए, मैं आवश्यकतानुसार सभी नोड्स पर फिर से शुरू नहीं करना चाहता हूं।

मैंने http://mbostock.github.com/d3/ex/chord.html से लिंक को लुप्त करने का उदाहरण लिया:

हालांकि, यह दिखाया नहीं गया है कि जुड़े बच्चे नोड्स को कैसे बदला जाए।

इसे हल करने या सुधारने के बारे में कोई भी अच्छा सुझाव उग्र रूप से उखाड़ फेंक दिया जाएगा :)






Related