用过Dtree的请进。
我的代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Dtree</title>
<link rel="StyleSheet" href="js/dtree/dtree.css" type="text/css" />
<script type="text/javascript" src="js/dtree/dtree.js"></script>
</head>
<body>
<div class="dtree">
<script type="text/javascript">
<!--
MY_DTree = new dTree('MY_DTree');//创建树,名称为'MY_DTree',和树的对象变量名必须一致。
alert(MY_DTree);
//alert(MY_DTree.toString());
document.write(MY_DTree);
//-->
</script>
</div>
</body>
</html>
----------------------
我的问题如下:
只是一个new dTree()。并且在他的js内的function dTree(objName)内也没发现有关其他的函数的调用。
此时 alert(MY_DTree)和alert(MY_DTree.toString())是一样的,有内容出现。就是
<div class="dtree">
</div>
也就是调用了函数
dTree.prototype.toString = function() {
var str = '<div class="dtree">\n';
if (document.getElementById) {
//只要用new dTree('树名'),就可以到这里。
if (this.config.useCookies) this.selectedNode = this.getSelected();
str += this.addNode(this.root);
} else str += 'Browser not supported.';
str += '</div>';
if (!this.selectedFound) this.selectedNode = null;
this.completed = true;
alert(str);
return str;
};
请问各位,什么时候调用的啊。
没看出来啊。
------解决方案--------------------直接new dTree()是不会进入toString方法,只会执行构造函数
调用了进入该方法的语句是:
alert(MY_DTree);//这句会调用toString方法
------解决方案--------------------d = new dTree("d");
d.add(0,-1,"<b>本站资源</b>","resources.aspx");
d.add(1,0,'语文','resources.aspx?type=new&subjectId=1');
d.add(2,0,'语文','resources.aspx?type=new&subjectId=1');
d.add(3,1,'xxxx','resources.aspx?type=new&subjectId=1');
d.add(4,1,'xxxx','resources.aspx?type=new&subjectId=1');
document.write(d);//document.write(d.toString());
------解决方案--------------------document.write(MY_DTree);
相当于
document.write(MY_DTree.toString());
------解决方案--------------------document.write(这里需要字符串)。不进行toString能得到字符串吗?