Jquery 用Dynatree包装文件夹
我在我的网站上安装了dynatree 1.2.4,以显示电子邮件存档解决方案中的一系列文件夹。这些文件夹通过AJAX检索,然后在调用dynatree代码之前格式化Jquery 用Dynatree包装文件夹,jquery,css,internet-explorer,dynatree,Jquery,Css,Internet Explorer,Dynatree,我在我的网站上安装了dynatree 1.2.4,以显示电子邮件存档解决方案中的一系列文件夹。这些文件夹通过AJAX检索,然后在调用dynatree代码之前格式化 function folders_loaded(json) { $("#folder_list").html("<ul id=\"folder_list_ul\"></ul>"); for (folder in json.allfolders) { processFolder(json.allf
function folders_loaded(json) {
$("#folder_list").html("<ul id=\"folder_list_ul\"></ul>");
for (folder in json.allfolders) {
processFolder(json.allfolders[folder], "folder_list_ul")
}
$("#folder_list").dynatree({
onActivate: function (node) {
//do stuff here
},
onClick: function (node, event) {
//do stuff here
}
});
}
function processFolder(folder, target_id) {
//console.log(JSON.stringify(folder));
var fid = folder.folder_id;
$("#" + target_id).append("<li id=\"folder_id_" + fid + "\" class=\"folder\" data=\"folder_id: " + fid + "\">" + folder.name);
$("#folder_id_" + folder.folder_id).append("<ul id=\"folder_list_" + fid + "\"></ul>")
for(f in folder.folders) {
processFolder(folder.folders[f],"folder_list_" + fid);
}
$("#" + target_id).append("</li>");
}
文件夹列表div的CSS如下所示
#folder_list
{
position:absolute;
top:0;
left:0;
width:150px;
height:100%;
z-index:10;
white-space:nowrap;
}
这些文件夹在Chrome中渲染得很漂亮,但在IE中,名称相对较长的文件夹会换行到下一行
左边的图片显示了我在IE中看到的内容,而右边的屏幕截图显示了Chrome
我还尝试将空白:nowrap
添加到文件夹\u list div的列表项中
#folder_list, #folder_list li
{
white-space:nowrap;
}
有人在IE中看到过这种行为吗?您是如何解决这个问题的?增加宽度,然后再试一次
#folder_list
{
width:180px;
}
我终于找到了答案。我不得不把它添加到我的CSS文件中
ul.dynatree-container li>span
{
display:inline-block !important;
white-space:nowrap;
}
显示部分似乎是解决此问题的最大关键。您能发布函数processFolder的代码吗?我已经添加了函数以及JSON数据示例。尝试用给定的代码复制您的问题,但在IE10和Chrome中都得到了相同的结果。我注意到上面的IE浏览器有一个水平滚动条,这表明x溢出没有被隐藏。你用IE的时候也是这样吗?还有,你用的是什么版本的IE?我用的是IE9。我发现了一个使用类似代码的JSFIDLE站点,它在那里工作。我能想到的唯一区别是,这是在SharePoint上部署的,可能有一些奇怪的SharePoint CSS覆盖了空白CSS设置。谢谢。但是,增加宽度不是一个选项。
ul.dynatree-container li>span
{
display:inline-block !important;
white-space:nowrap;
}