首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dojox.charting和xDomain引用dojo/dojox库的问题

dojox.charting和xDomain引用dojo/dojox库的问题
EN

Stack Overflow用户
提问于 2009-03-28 22:09:10
回答 2查看 1.7K关注 0票数 0

我有一个网页超文本标记语言页面与一些客户端的JS代码基于dojox.charting。我的本地网站中没有dojo库(实际上没有web服务器)。我将dojos的xDomain引用功能与src一起使用到谷歌的托管站点,如下所示:

代码语言:javascript
复制
<head>
...
<script type="text/javascript"
    djConfig1="isDebug:true"        
    src="http://ajax.googleapis.com/ajax/libs/dojo/1.2.0/dojo/dojo.xd.js">
</script>
<script type="text/javascript"
  dojo.require("dojox.gfx");
    dojo.require("dojox.gfx.move");
    dojo.require("dojo.html");

    dojo.require("dojox.charting.Chart2D");
    dojo.require("dojox.charting.themes.PlotKit.green");

    dojo.require("dojox.charting.action2d.Highlight");
    dojo.require("dojox.charting.action2d.Magnify");
    dojo.require("dojox.charting.action2d.MoveSlice");
    dojo.require("dojox.charting.action2d.Shake");
    dojo.require("dojox.charting.action2d.Tooltip");
    dojo.require("dojox.charting.themes.MiamiNice");

    dojo.require("dojox.charting.widget.Legend");
</script>
....
</head>

这是基于Dojo: Now With Drawing Tools中的代码创建曲线图的函数。

代码语言:javascript
复制
function drawCurve(nodeChart, nodeLegend) {
  var chart1 = new dc.Chart2D(nodeChart)
    .setTheme(dc.themes.PlotKit.green)
    .addPlot("default", {
      type: "Default",
      lines: true,
      markers: true,
      tension: 2
    })
   .addAxis("x", {
      min: 0,
      max: 6,
      majorTick: { stroke: "black", length: 3 },
      minorTick: { stroke: "gray", length: 3 }
    })
    .addAxis("y", {
      vertical: true,
      min: 0,
      max: 10,
      fixLower: "major", 
      fixUpper: "major",
      majorTick: { stroke: "black", length: 3 },
      minorTick: { stroke: "gray", length: 3 }
    })
    .addSeries("Series A", [
      { x: 0.5, y: 5 },
      { x: 1.5, y: 1.5 },
      { x: 2, y: 9 },
      { x: 5, y: 0.3 }
    ])
   .addSeries("Series B", [
      { x: 0.3, y: 8 },
      { x: 4, y: 6, tooltip: "Custom tooltip"},
      { x: 5.5, y: 2 }
    ]);
  var series = chart1.series;

  var anim_a = new dc.action2d.Tooltip(chart1, "default");
  var anim_c = new dc.action2d.Magnify(chart1, "default"); // not working
  chart1.render();

  var legendChart = new dc.widget.Legend(
    {chart: chart1, horizontal: false}, nodeLegend.id);
}

我的第一个问题是,对于曲线图,y轴上的数字只显示0和10,中间的数字1到9都没有显示。X轴的值从1到6是可见的。本文中的原始图表快照也显示了y轴值,但DojoToolKit Demos上的图表快照显示了沿y轴的值。我不确定我在代码中遗漏了什么。如何启用显示y轴值?

下一个问题是关于Magnify()的。DojoToolKit演示站点的曲线图运行良好,但我的图表的放大功能不起作用。我认为这可能是由xDomain引用引起的。我可能需要从xDomain的dojox库中指定一些指定的js文件。我不确定我必须指定哪一个。

我注意到的一件事是,我的FireBug在绘制曲线图后显示以下错误:

代码语言:javascript
复制
_4.fx.combine is not a function http://ajax.googleapis.com/ajax/libs/dojo/1.2.0/dojox/charting/action2d/Magnify.xd.js Line 8
_11.action is undefined http://ajax.googleapis.com/ajax/libs/dojo/1.2.0/dojox/charting/action2d/Magnify.xd.js Line 8

我认为那些未定义的错误可能表明我错过了在head部分加载一些dojox库文件。

顺便说一下,我没有web服务器,我更喜欢使用dojo的xDomain参考选项。通过这种方式,我可以在任何地方编辑html文件并将其发送给其他人。无需下载和安装dojo源代码库。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-03-29 05:42:42

关于y轴值,我也找到了显示它们(0到9)的简单方法:

代码语言:javascript
复制
.addAxis("y", {
  vertical: true,
  //min: 0
  //max: 10
....

您也可以仅注释掉min,并将max保留为10 (0,1,...到10)。有关轴设置的详细信息,请参见DojoCampus.org

票数 0
EN

Stack Overflow用户

发布于 2009-03-29 03:58:58

我想我找到了缺失的部分:

代码语言:javascript
复制
dojo.require("dojo.fx");

当我将这一行添加到HTML的head setction中时,由Mangify()设置的动画部分正在工作。这仅适用于将dojox.charting库的xDomain引用设置为dojox的情况。

我发现这是通过使用Firebug查看DojoToolKit's Event 2D web page。在head部分中有代码:

代码语言:javascript
复制
<script src="http://../action2/Magnify.js" type="text/javascript"></script>

该页已启用调试。因此,在FireBug窗口中,您将看到布局精美的js源代码。我看到了三个需求,其中一个是"dojo.fx“。我试着把这个加进去。这样就不会再有错误,当我将鼠标移到图表曲线上的点上时,我可以看到放大效果的动画。

有趣的是,如果js是xDomain引用的,那么js源代码会在一段很长很长的时间内显示出来。如果你已经在你的网页上安装了dojo库,也就是相同的域,那么dojo的源代码就会很好地显示出来。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/693621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档