initTree()
失败。
这适用于FF和Chrome:
$("#tree").treeview({
collapse:false,
});
这适用于FF Chrome和IE6:
$("#tree").treeview({
collapse:false //<-here is the key, no comma
});
我有一棵树:
<ul id="tree">
<li>Root
<ul>
<li>Node_1_2<a class='addnode'>add</a><a class='deletenode'>delete</a>
<ul>
<li>Node_2_4<a class='addnode'>add</a><a class='deletenode'>delete</a></li>
<li>Node_2_6</li>
</ul>
</li>
</ul>
</li>
</ul>
如果我单击<a>add</a>
,它应该将chid节点附加到该元素。类似的东西:
$("a.addnode").live("click", function() {
if($(this).parent().children("ul").html() == null){
leafHtml = ...;
$(this).parent().append(leafHtml);
}
else{
leafHtml = ...;
$(this).parent().children("ul").append(leafHtml);
}
initTree();
});
这在Firefox和Chrome中运行良好。但在IE6中它没有做任何事情。好像$("a.addnode")
似乎不起作用。
答案 0 :(得分:2)
首先,您需要一些方法来调试正在发生的事情。有一些像Firebug lite这样的东西你可以查看,但我建议只是发出一些警报。
$("a.addnode").live("click", function() {
alert('click caught');
if($(this).parent().children("ul").html() == null){
alert('no children');
leafHtml = ...;
$(this).parent().append(leafHtml);
}
else{
alert('children');
leafHtml = ...;
$(this).parent().children("ul").append(leafHtml);
}
alert('end');
initTree();
});
你会知道叫什么叫什么,什么不叫,而不是猜测。如果我应该猜测,这里有两个错误会导致这个问题。你的选择器很好。
1:$(this).parent()。children(“ul”)。html()== null永远不会成立。你应该检查$(this).parent()。children(“ul”)。children()。length == 0。
2:$(this).parent()。children(“ul”)。append(leafHtml)毫无意义。 ul中的文本无效,如果IE6忽略它(它应该),我不会感到惊讶。
我怀疑#1会让#2总是发生,因为这是无效的IE6只是忽略它。