static/js/central-click.js
/**
* central-click.js
*/
d3.svg.BubbleChart.define("central-click", function (options) {
var self = this;
self.setup = (function (node) {
var original = self.setup;
return function (node) {
var fn = original.apply(this, arguments);
self.event.on("click", function(node) {
if (node.selectAll("text.central-click")[0].length === 1) {
console.log("clicked");
}
});
return fn;
};
})();
self.reset = (function (node) {
var original = self.reset;
return function (node) {
var fn = original.apply(this, arguments);
node.select("text.central-click").remove();
return fn;
};
})();
self.moveToCentral = (function (node) {
var original = self.moveToCentral;
return function (node) {
var fn = original.apply(this, arguments);
var transition = self.getTransition().centralNode;
transition.each("end", function() {
node.append("text").classed({"central-click": true})
.attr(options.attr)
.style(options.style)
.attr("x", function (d) {return d.cx;})
.attr("y", function (d) {return d.cy;})
.text(options.text)
.style("opacity", 0).transition().duration(self.getOptions().transitDuration / 2).style("opacity", "0.8");
});
return fn;
};
})();
});