D3是一个非常好的大数据前台展示技术。工作中把EXTJS和D3JS一起用,在用D3 selection对象的attr方法设置SVG的rect的ext:qtip时出了一点小问题。D3会检查attribute的名称里面有没有包含冒号,有的话会把冒号前的作为namespace另行处理。这样造成的效果就是页面只有qtip属性,EXT不认识。为达到设置ext:qtip的目的,我扩展了D3的selection对象。具体代码如下:
function d3_selection_qtip(value){
var name = "ext:qtip";
function attrNull() {
this.removeAttribute(name);
}
function attrConstant() {
this.setAttribute(name, value);
}
function attrFunction() {
var x = value.apply(this, arguments);
if (x == null) this.removeAttribute(name); else this.setAttribute(name, x);
}
return value == null ? attrNull : typeof value === "function" ? attrFunction : attrConstant;
}
d3.selection.prototype.qtip = function(value) {
if(Ext!="undefined"){
return this.each(d3_selection_qtip(value));
}else{
//do nothing if no Ext.
}
};
转载请务必指出原出本博客。
分享到:
相关推荐
例如,它可能使用`d3.json()`加载数据,然后用`d3.pie()`和`d3.arc()`函数来计算饼图的扇区和形状,最后用`selection.data().enter().append()`等方法创建并更新SVG元素。 此外,由于提到了“拓扑结构的层级关系”...
`d3-fetch`可以与其他D3模块无缝集成,比如`d3-scale`用于数据映射,`d3-array`用于数据计算,`d3-selection`用于DOM操作等,共同构建复杂的数据驱动应用。 **总结** `Node.js-d3-fetch`模块通过扩展Fetch API,为...
d3.template从结构化数据对象创建 javascript 和 html。 该项目希望加速基于 Web 的数据表示层的设计和创新。 这个自述文件是用 Literate Coffeescript 编写的,可以作为代码运行。 基本用法? d3.template需要 ;...
D3.js(Data-Driven Documents)则是一个JavaScript库,专用于数据可视化,它允许开发者将数据绑定到DOM(文档对象模型)上,并通过数据驱动的方式更新视觉元素,从而创建出复杂、动态且交互性强的数据图表。...
VFP通过OLE自动化可以无缝集成和控制Office应用,如Word和Excel,从而极大地扩展了其功能和灵活性。无论是用于数据处理、报表生成,还是文档自动化,VFP与Office的结合都提供了强大的工具集,能够满足各种业务需求。...
这些基本概念构成了VBA编程的基础,通过组合和扩展这些对象、属性和方法,你可以实现复杂的Excel自动化任务,如数据处理、报表生成、用户界面交互等。掌握VBA,能显著提高工作效率,让Excel成为你的得力助手。