我们是否可以为d3.xhr调用添加任何全局侦听器,就像我们在ExtJS中一样。 Ext.Ajax.on(“beforerequest”,function(conn,options,eOpts){)};
我尝试使用https://github.com/mbostock/d3/wiki/Requests#on
中指定的'on'尝试时
d3.xhr.on("beforesend", function(request){
console.log("inside on");
});
我收到了以下错误。 未捕获的TypeError:d3.xhr.on不是函数
尝试下面的代码
d3.xhr(url, callback).on("beforesend", function(request){
console.log("inside on");
});
抛出以下错误。 未捕获的TypeError:无法读取未定义的属性“on”
我是否必须做一些特别的事情来启用听众?
提前致谢。
答案 0 :(得分:1)
您不需要执行任何特殊操作,但必须使用.get()
的长格式来使用.on()
处理程序。也就是说,您无法将回调函数作为d3.xhr()
的第二个参数提供:
d3.xhr("http://www.example.com") // note no callback function!
.on("beforesend", function(request){
console.log("inside on");
})
.get(function(error, data) {
console.log(error, data);
});
完整演示here。另请参阅this example。