`
wuxi7227
  • 浏览: 1666 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

D3 selection对象扩展

阅读更多
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面包圈例子

    例如,它可能使用`d3.json()`加载数据,然后用`d3.pie()`和`d3.arc()`函数来计算饼图的扇区和形状,最后用`selection.data().enter().append()`等方法创建并更新SVG元素。 此外,由于提到了“拓扑结构的层级关系”...

    Node.js-d3-fetch这个模块提供基于Fetch之上的便捷解析

    `d3-fetch`可以与其他D3模块无缝集成,比如`d3-scale`用于数据映射,`d3-array`用于数据计算,`d3-selection`用于DOM操作等,共同构建复杂的数据驱动应用。 **总结** `Node.js-d3-fetch`模块通过扩展Fetch API,为...

    d3.template:来自结构化数据的 Web 模板

    d3.template从结构化数据对象创建 javascript 和 html。 该项目希望加速基于 Web 的数据表示层的设计和创新。 这个自述文件是用 Literate Coffeescript 编写的,可以作为代码运行。 基本用法? d3.template需要 ;...

    HTML5 + D3.js 实现有创意的服装弹性标签动画效果源码.zip

    D3.js(Data-Driven Documents)则是一个JavaScript库,专用于数据可视化,它允许开发者将数据绑定到DOM(文档对象模型)上,并通过数据驱动的方式更新视觉元素,从而创建出复杂、动态且交互性强的数据图表。...

    VFP调用WORD

    VFP通过OLE自动化可以无缝集成和控制Office应用,如Word和Excel,从而极大地扩展了其功能和灵活性。无论是用于数据处理、报表生成,还是文档自动化,VFP与Office的结合都提供了强大的工具集,能够满足各种业务需求。...

    VBA入门到进阶常用知识代码总结02

    这些基本概念构成了VBA编程的基础,通过组合和扩展这些对象、属性和方法,你可以实现复杂的Excel自动化任务,如数据处理、报表生成、用户界面交互等。掌握VBA,能显著提高工作效率,让Excel成为你的得力助手。

Global site tag (gtag.js) - Google Analytics