Javascript图表未插入DIV容器

时间:2012-08-10 15:14:03

标签: php javascript html charts gantt-chart

我正在尝试将甘特图图表插入名为'GanttDiv'的div容器中。我正在使用dhtmlxGantt library

所以,我下载了这个库并将其保存在mod_gantt/js中。接下来,我复制了sample code只是为了检查它是如何工作的。问题是我的网页上没有创建甘特图。

可能是什么原因?

         

<script type="text/javascript" language="JavaScript">
function createChartControl('GanttDiv')
{
    // Initialize Gantt data structures
    var project1 = new GanttProjectInfo(1, "Applet redesign", new Date(2010, 5, 11));
    var parentTask1 = new GanttTaskInfo(1, "Old code review", new Date(2010, 5, 11), 208, 50, "");
    parentTask1.addChildTask(new GanttTaskInfo(2, "Convert to J#", new Date(2010, 5, 11), 100, 40, ""));
    parentTask1.addChildTask(new GanttTaskInfo(13, "Add new functions", new Date(2010, 5, 12), 80, 90, ""));
    var parentTask2 = new GanttTaskInfo(3, "Hosted Control", new Date(2010, 6, 7), 190, 80, "1");
    var parentTask5 = new GanttTaskInfo(5, "J# interfaces", new Date(2010, 6, 14), 60, 70, "6");
    var parentTask123 = new GanttTaskInfo(123, "use GUIDs", new Date(2010, 6, 14), 60, 70, "");
    parentTask5.addChildTask(parentTask123);
    parentTask2.addChildTask(parentTask5);
    parentTask2.addChildTask(new GanttTaskInfo(6, "Task D", new Date(2010, 6, 10), 30, 80, "14"));
    var parentTask4 = new GanttTaskInfo(7, "Unit testing", new Date(2010, 6, 15), 118, 80, "6");
    var parentTask8 = new GanttTaskInfo(8, "core (com)", new Date(2010, 6, 15), 100, 10, "");
    parentTask8.addChildTask(new GanttTaskInfo(55555, "validate uids", new Date(2010, 6, 20), 60, 10, ""));
    parentTask4.addChildTask(parentTask8);
    parentTask4.addChildTask(new GanttTaskInfo(9, "Stress test", new Date(2010, 6, 15), 80, 50, ""));
    parentTask4.addChildTask(new GanttTaskInfo(10, "User interfaces", new Date(2010, 6, 16), 80, 10, ""));
    parentTask2.addChildTask(parentTask4);
    parentTask2.addChildTask(new GanttTaskInfo(11, "Testing, QA", new Date(2010, 6, 21), 60, 100, "6"));
    parentTask2.addChildTask(new GanttTaskInfo(12, "Task B (Jim)", new Date(2010, 6, 8), 110, 1, "14"));
    parentTask2.addChildTask(new GanttTaskInfo(14, "Task A", new Date(2010, 6, 7), 8, 10, ""));
    parentTask2.addChildTask(new GanttTaskInfo(15, "Task C", new Date(2010, 6, 9), 110, 90, "14"));
    project1.addTask(parentTask1);
    project1.addTask(parentTask2);
    //project 2
    var project2 = new GanttProjectInfo(2, "Web Design", new Date(2010, 5, 17));
    var parentTask22 = new GanttTaskInfo(62, "Fill HTML pages", new Date(2010, 5, 17), 157, 50, "");
    parentTask22.addChildTask(new GanttTaskInfo(63, "Cut images", new Date(2010, 5, 22), 78, 40, ""));
    parentTask22.addChildTask(new GanttTaskInfo(64, "Manage CSS", null, 90, 90, ""));
    project2.addTask(parentTask22);
    var parentTask70 = new GanttTaskInfo(70, "PHP coding", new Date(2010, 5, 18), 120, 10, "");
    parentTask70.addChildTask(new GanttTaskInfo(71, "Purchase D control", new Date(2010, 5, 18), 50, 0, ""));
    project2.addTask(parentTask70);
    // Create Gantt control
    var ganttChartControl = new GanttChart();
    // Setup paths and behavior
    ganttChartControl.setImagePath("mod_gantt/js/dhtmlxGantt/codebase/imgs/");
    ganttChartControl.setEditable(false);
    ganttChartControl.showTreePanel(false);
    ganttChartControl.showContextMenu(false);
    ganttChartControl.showDescTask(true,'n,s-f');
    ganttChartControl.showDescProject(true,'n,d');
    // Load data structure        
    ganttChartControl.addProject(project1);
    ganttChartControl.addProject(project2);
    // Build control on the page
    ganttChartControl.create(htmlDiv1);
}
</script>

<div class="contacts">
    <div class="_line">
        <div class="_title">Phone:</div>
        <div class="_txt">77 77 88</div>
    </div>
</div>

<div id="GanttDiv" class="GanttDiv"></div>

2 个答案:

答案 0 :(得分:1)

将完整的JavaScript代码放在结束正文标记的上方。有可能在你调用函数时,div不会在页面中呈现。

像这样的东西

<html>
<body>
div class="contacts">
    <div class="_line">
        <div class="_title">Phone:</div>
        <div class="_txt">77 77 88</div>
    </div>
</div>

<div id="GanttDiv" class="GanttDiv"></div>

<script type="text/javascript" language="JavaScript">
function createChartControl(htmlDiv1)
{
    // Initialize Gantt data structures
    var project1 = new GanttProjectInfo(1, "Applet redesign", new Date(2010, 5, 11));
    var parentTask1 = new GanttTaskInfo(1, "Old code review", new Date(2010, 5, 11), 208, 50, "");
    parentTask1.addChildTask(new GanttTaskInfo(2, "Convert to J#", new Date(2010, 5, 11), 100, 40, ""));
    parentTask1.addChildTask(new GanttTaskInfo(13, "Add new functions", new Date(2010, 5, 12), 80, 90, ""));
    var parentTask2 = new GanttTaskInfo(3, "Hosted Control", new Date(2010, 6, 7), 190, 80, "1");
    var parentTask5 = new GanttTaskInfo(5, "J# interfaces", new Date(2010, 6, 14), 60, 70, "6");
    var parentTask123 = new GanttTaskInfo(123, "use GUIDs", new Date(2010, 6, 14), 60, 70, "");
    parentTask5.addChildTask(parentTask123);
    parentTask2.addChildTask(parentTask5);
    parentTask2.addChildTask(new GanttTaskInfo(6, "Task D", new Date(2010, 6, 10), 30, 80, "14"));
    var parentTask4 = new GanttTaskInfo(7, "Unit testing", new Date(2010, 6, 15), 118, 80, "6");
    var parentTask8 = new GanttTaskInfo(8, "core (com)", new Date(2010, 6, 15), 100, 10, "");
    parentTask8.addChildTask(new GanttTaskInfo(55555, "validate uids", new Date(2010, 6, 20), 60, 10, ""));
    parentTask4.addChildTask(parentTask8);
    parentTask4.addChildTask(new GanttTaskInfo(9, "Stress test", new Date(2010, 6, 15), 80, 50, ""));
    parentTask4.addChildTask(new GanttTaskInfo(10, "User interfaces", new Date(2010, 6, 16), 80, 10, ""));
    parentTask2.addChildTask(parentTask4);
    parentTask2.addChildTask(new GanttTaskInfo(11, "Testing, QA", new Date(2010, 6, 21), 60, 100, "6"));
    parentTask2.addChildTask(new GanttTaskInfo(12, "Task B (Jim)", new Date(2010, 6, 8), 110, 1, "14"));
    parentTask2.addChildTask(new GanttTaskInfo(14, "Task A", new Date(2010, 6, 7), 8, 10, ""));
    parentTask2.addChildTask(new GanttTaskInfo(15, "Task C", new Date(2010, 6, 9), 110, 90, "14"));
    project1.addTask(parentTask1);
    project1.addTask(parentTask2);
    //project 2
    var project2 = new GanttProjectInfo(2, "Web Design", new Date(2010, 5, 17));
    var parentTask22 = new GanttTaskInfo(62, "Fill HTML pages", new Date(2010, 5, 17), 157, 50, "");
    parentTask22.addChildTask(new GanttTaskInfo(63, "Cut images", new Date(2010, 5, 22), 78, 40, ""));
    parentTask22.addChildTask(new GanttTaskInfo(64, "Manage CSS", null, 90, 90, ""));
    project2.addTask(parentTask22);
    var parentTask70 = new GanttTaskInfo(70, "PHP coding", new Date(2010, 5, 18), 120, 10, "");
    parentTask70.addChildTask(new GanttTaskInfo(71, "Purchase D control", new Date(2010, 5, 18), 50, 0, ""));
    project2.addTask(parentTask70);
    // Create Gantt control
    var ganttChartControl = new GanttChart();
    // Setup paths and behavior
    ganttChartControl.setImagePath("mod_gantt/js/dhtmlxGantt/codebase/imgs/");
    ganttChartControl.setEditable(false);
    ganttChartControl.showTreePanel(false);
    ganttChartControl.showContextMenu(false);
    ganttChartControl.showDescTask(true,'n,s-f');
    ganttChartControl.showDescProject(true,'n,d');
    // Load data structure        
    ganttChartControl.addProject(project1);
    ganttChartControl.addProject(project2);
    // Build control on the page
    ganttChartControl.create(htmlDiv1);
}

createChartControl('GanttDiv');
</script>
</body>

答案 1 :(得分:1)

通过添加以下脚本使您的javascript立即可运行:

(function(){
        createChartControl('GanttDiv');
})();