javascript - DOJO 工具提示给出 "Uncaught TypeError: object is not a function "

标签 javascript dojo tooltip amd

我有以下代码尝试使用dojox/charting/action2d/Tooltip:

require([
    "dojox/charting/Chart",
    "dojox/charting/themes/Claro",
    "dojox/charting/plot2d/MarkersOnly",
    "dojox/charting/plot2d/Columns",
    "dojox/fx/easing",
    "dojox/charting/action2d/Tooltip",
    "dojox/charting/axis2d/Default",
    "dojo/ready"
], function(Chart, Theme, MarkersOnly, easing, Tooltip, Columns, Default, ready) {

        ready(function(){
                var chart1 = new Chart("chartArea");
                chart1.setTheme(Theme);
                chart1.addPlot("budget", {type: "MarkersOnly"});
                chart1.addPlot("actual", {type: "Columns", gap: 3, animate: { duration: 300, easing: dojox.fx.easing.linear}});

                //add the axis (both x and y) below
                chart1.addAxis("x",{labels: [
                    {value:1, text: "01 - AXA"},{value:2, text: "02 - MR"},{value:3, text: "03 - CT"},{value:4, text: "04 - XP WH"},                                              
                    {value:5, text: "06 - XP RF"},{value:6, text: "07 - XPC"},{value:7, text: "09 - ECS"},{value:8, text: "10 - XPU"}], 
                     rotation:-90, 
                     font: "normal normal bold 12pt Arial"
                });//end adding axis to the chart
                chart1.addAxis("y", {vertical: true, font: "normal normal bold 12pt Arial"});

                chart1.addSeries("Series 2", [80,80,80,80,80,80,80,80,80,80,80,80,80], {plot:"budget"});
                //chart1.addSeries("Series 1", [73,71,78,93,70,,,83,100,,,], {plot:"actual"});
                chart1.addSeries("Series 1", [{y:75, tooltip:"custom"},{y:71},{y:78},{y:93},{y:70},{y:83},{y:100}], {plot:"actual"});


                var tip = new Tooltip(chart1, "default");  
                chart1.render();
        });//end of DOJO ready
    });//end function chart stuff

并且 DOJO 给出了以下错误:

未捕获类型错误:对象不是函数

我可以弄清楚为什么会出现这个问题,特别是因为我发现了多个以这种方式处理它的示例。有人有什么想法吗?

最佳答案

您的依赖项列表和回调的参数列表不匹配。

require([
    "dojox/charting/Chart",
    "dojox/charting/themes/Claro",
    "dojox/charting/plot2d/MarkersOnly", 
    "dojox/charting/plot2d/Columns",
    "dojox/fx/easing",
    "dojox/charting/action2d/Tooltip",
    "dojox/charting/axis2d/Default",
    "dojo/ready"
], function(Chart, Theme, MarkersOnly, Columns, easing, Tooltip, Default, ready) { /* ... */ });

请注意参数的不同顺序:Columns 位于 MarkersOnly 之后。

根据您的参数顺序,Tooltip 指向 dojo/fx/easing 模块并给出您所描述的错误。

关于javascript - DOJO 工具提示给出 "Uncaught TypeError: object is not a function ",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18916721/

相关文章:

javascript - 如何设置dojox/form/CheckedMultiSelect的宽度?

jQuery:易于调整的工具提示,无需使用图像,并且免费用于商业用途

带工具提示的 Wpf 文本框样式

c# - 在工具提示中显示 Web 表单

javascript - 在 javascript 对象定义中连接字符串

javascript - 在 google cloud function env 上输入密码

javascript - 道场: Cannot read property 'h' of undefined on AccordionContainer. js?

javascript - 如何编写 SQL 查询以安全地将记录插入可变表名?

javascript - Typeahead 选择列表支持树结构

dojo - 我可以从动态创建的 dijit 按钮 onClick 传递参数吗?