0

を使用して以下のコードを実行し$(document).ready()ました。問題は、CATCH が実行され、err.message返されたg が定義されていないことです。しかし、オブジェクト Objectalert(g)が返されました。オブジェクトgが奇妙に削除された理由がわかりません。助けてください。

http://jsfiddle.net/Udkkv/4/

 <script>
function createChartControl(htmlDiv) {
      var g = new JSGantt.GanttChart('g',document.getElementById(htmlDiv), 'day');

        g.setShowRes(1); // Show/Hide Responsible (0/1)
        g.setShowDur(1); // Show/Hide Duration (0/1)
        g.setShowComp(1); // Show/Hide % Complete(0/1)
       g.setCaptionType('Resource');  // Set to Show Caption (None,Caption,Resource,Duration,Complete)

        // Parameters             (pID, pName,                  pStart,      pEnd,        pColor,   pLink,          pMile, pRes,  pComp, pGroup, pParent, pOpen, pDepend, pCaption)

        g.AddTaskItem(new JSGantt.TaskItem(1,   'Define Chart API',     '',          '',          'ff0000', 'http://help.com', 0, 'Brian',     0, 1, 0, 1));
        g.AddTaskItem(new JSGantt.TaskItem(11,  'Chart Object',         '7/20/2008', '7/20/2008', 'ff00ff', 'http://www.yahoo.com', 1, 'Shlomy',  100, 0, 1, 1));
        g.AddTaskItem(new JSGantt.TaskItem(12,  'Task Objects',         '',          '',          '00ff00', '', 0, 'Shlomy',   40, 1, 1, 1));
        g.AddTaskItem(new JSGantt.TaskItem(121, 'Constructor Proc',     '7/21/2008', '8/9/2008',  '00ffff', 'http://www.yahoo.com', 0, 'Brian T.', 60, 0, 12, 1));
        g.AddTaskItem(new JSGantt.TaskItem(122, 'Task Variables',       '8/6/2008',  '8/11/2008', 'ff0000', 'http://help.com', 0, 'Brian',         60, 0, 12, 1,121));
        g.AddTaskItem(new JSGantt.TaskItem(123, 'Task by Minute/Hour',       '8/6/2008',  '8/11/2008 12:00', 'ffff00', 'http://help.com', 0, 'Ilan',         60, 0, 12, 1,121));
        g.AddTaskItem(new JSGantt.TaskItem(124, 'Task Functions',       '8/9/2008',  '8/29/2008', 'ff0000', 'http://help.com', 0, 'Anyone',   60, 0, 12, 1, 0, 'This is another caption'));
        g.AddTaskItem(new JSGantt.TaskItem(2,   'Create HTML Shell',    '8/24/2008', '8/25/2008', 'ffff00', 'http://help.com', 0, 'Brian',    20, 0, 0, 1,122)); 

        g.Draw();   
        g.DrawDependencies();

      }

}
</script>

<script>
$(document).ready(function() {             
   createChartControl('schedule');
});

<div style="position:relative" class="gantt" id="schedule"></div>

更新: $(document).ready() なしでこのコードを実行すると、つまり DIV タグの直後に実行すると、機能します。どうしてですか???

更新 2:再現されたプロジェクトは次のとおりです: http://jsfiddle.net/Udkkv/4/動作していませんが、おそらく今では支援が容易になります。

4

1 に答える 1

1

var g は、定義される前に使用されます。問題は、Web サイトの .js ファイル内にあります: "http://www.jsgantt.com/jsgantt.js"。

if (vGroup != 1)
  {  
     vStart = JSGantt.parseDateStr(pStart,g.getDateInputFormat());
     vEnd   = JSGantt.parseDateStr(pEnd,g.getDateInputFormat());
  }

上記のコードでは、次を使用しようとしています。

g.getDateInputFormat()

var g はまだ定義されていません。

于 2012-08-11T21:57:26.617 に答える