下面是一个完整的HTML源代码,用于使用google闭包构建一个简单的工具栏。
在Chrome中给出一个错误消息:Uncaught TypeError: Cannot call method 'addChild' of undefined在标记为// ERROR注释的位置。
有人能给我个建议吗?谢谢!
编辑:是正确的,错过了新,但另一个错误是,我应该使用render()而不是decorate(),因为decorate()需要所有dom元素就位(而且定义的按钮没有占位符),而render()则创建新元素。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-US" xml:lang="en-US" xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" src="/m/google-closure/closure/goog/base.js"></script>
<script type="text/javascript">
goog.require('goog.dom');
goog.require('goog.ui.Toolbar');
goog.require('goog.ui.ToolbarButton');
</script>
<script type="text/javascript">
var load_sketcher = function(){
var tb = goog.ui.Toolbar();
tb.addChild(new goog.ui.ToolbarButton('A'), true);// ERROR!!!
tb.addChild(new goog.ui.ToolbarButton('B'), true);
tb.decorate(goog.dom.getElement('sk_toolbar'));// should have used render() here
};
</script>
</head>
<body onload='load_sketcher();'>
<div id="sketcher">
<div id="sk_toolbar"></div>
<div id="sk_canvas"></div>
</div>
</body>
</html> 发布于 2010-02-21 18:32:46
可能还有其他问题,但错误是因为需要新关键字,所以行应该如下所示:
var tb = new goog.ui.Toolbar();https://stackoverflow.com/questions/2306875
复制相似问题