2012-08-10 55 views
0

我試圖將甘特圖圖表插入名爲'GanttDiv'的div容器中。我正在使用dhtmlxGantt libraryJavascript圖表未插入DIV容器

所以,我下載了這個庫,並保存在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> 
+3

你實際調用你的函數? – andrewsi 2012-08-10 15:16:09

+0

你是否包含示例中的.js文件? – 2012-08-10 15:17:02

+0

爲什麼你的函數參數是一個字符串文字? – 2012-08-10 15:18:22

回答

1

讓你的JavaScript立即加入下面的腳本運行的:

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

Thx,這是最簡單的解決方法。 – Gusgus 2012-08-10 15:31:12

+0

直接調用函數createChartControl('GanttDiv');並使用上面的自動執行匿名函數? – kiranvj 2012-08-10 15:35:04

+0

Nothing,really :),我只是想向OP顯示一個自動執行的匿名函數代碼塊的例子。正如你在我的回答中看到的,我只提到了如何讓js立即運行。 – raidenace 2012-08-10 15:42:00

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> 
+0

我試圖做的完全一樣,但是它不起作用,所以,如何在不使用body onload的情況下調用javascript? – Gusgus 2012-08-10 15:26:10

+0

它現在正在工作。寫了ganttChartControl.create('GanttDiv'); – Gusgus 2012-08-10 15:29:21

+0

這沒有意義function createChartControl('GanttDiv') – kiranvj 2012-08-10 15:29:32