浏览 1071 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
时间:2008-04-27
jquery.treeview.js中存在不少缺陷,为了在项目中使用,都已经解决了。但是现在碰到一个棘手的问题,在展开树中某节点时,由于树中的文件夹都要变更样式。需要调用removeClass()和addClass()的时候,对应的class中存在图片背景之类的,每次调用都会重新从服务器下载对应图片。网络访问性能极差。原来我直接制作的目录树,通常是改变图片<img>的src属性来完成的,不会发生这种现象。不知道谁碰到过,解决了的。谢谢。
声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
时间:2008-04-28
由于树中的文件夹都要变更样式。需要调用removeClass()和addClass()的时候,
那你变更样式的方式变为直接写CSS 变更背景图片的位置 然后把背景图片合为一张,应该就不用重载了。 |
|
| 返回顶楼 | |
|
时间:2008-04-29
图片应该都缓存了的(如果header对的话)
上面说的一张图也不错,用region来指定 |
|
| 返回顶楼 | |
|
时间:2008-05-10
搞一张图,用background-position来变化
|
|
| 返回顶楼 | |
|
时间:2008-05-21
fortaotao,你好。我正在使用jquery.treeview.js,遇到一个问题,就是单击li项不能展开或收缩树,只能单击“+”或“-”展开或收缩树。请问你是怎么解决这个问题的。
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
oldonload();
func();
}
}
}
addLoadEvent(treeview_init);
addLoadEvent(prepareAjax);
function prepareAjax() {
$("#navigation a").click(function(event){
$("#mainContent").load(this.href);
return false;
});
}
列表项li用PHP读取数据库
<ul id="navigation">
<li class="open">标题
<ul>
<?php
$rows=array();
@mysql_connect ("localhost","root","wayBp7_c12") or die("连接数据库时出错!");
mysql_query("SET NAMES 'UTF8'");
@mysql_select_db("collectables") or die("打开数据库时出错!");
$querystr="SELECT id,parent,title,text FROM col_courses WHERE parent=0 ORDER BY id";
$result=mysql_query($querystr);
while ($row=mysql_fetch_array($result,MYSQL_ASSOC))
{
$rows[]=$row;
}
reset($rows);
foreach($rows as $row)
{
?>
<li> <a href="<?php echo $row[text];?>"> <?php echo $row[title];?> </a>
<?php
$querystr2="SELECT id,parent,title,text FROM col_courses WHERE parent=$row[id] ORDER BY id";
$result2=mysql_query($querystr2);
$rows2=array();
while ($row2=mysql_fetch_array($result2,MYSQL_ASSOC))
{
$rows2[]=$row2;
}
if (count($rows2)>0)
{
reset($rows2);
?>
<ul>
<?php
$i=0;
foreach($rows2 as $row)
{
?>
<li><a href="<?php echo $row[text];?>"> <?php echo $row[title];?> </a></li>
<?php
$i=$i+1;
}
?>
</ul>
</li>
<?php
unset($row2);
}
}
?>
</ul>
</li>
</ul>
|
|
| 返回顶楼 | |
|
时间:2008-05-26
我使用的办法跟你稍微有点区别,不过我觉得你这个问题的原因是因为你的<a>,看源码里面对于包含a标签的文件夹,不会帮你绑定单击展开事件的。你试着去掉呢。
另外,附上我提的问题的最终错误原因。系统集成时,公司门户模块对我的所有URL进行了过滤,造成了图片的重复获取。谢谢大家的关注。现在在需要过滤的地方没有采用/*了,细化成*.html,就没有性能问题了 |
|
| 返回顶楼 | |
|
时间:2008-05-26
谢谢你,我去掉a标签后,树可以点击展开了。但我仍要想办法加上链接。
|
|
| 返回顶楼 | |
|
时间:2008-06-06
想办法对span元素绑定click事件。如:$("span").click(function(){ ..... });
应该能满足你的需要,我是这样来实现的,treeview还有很多细节问题没解决,头很大。目前最致命的一个问题是,当树放在一个div里面的时候,一旦目录名称长度超过了DIV设定宽度,<span>ddd</span>会自动换行,造成树的展示被破坏。还在解决中。跟float:left这种设定方式有关系。比较头疼。 |
|
| 返回顶楼 | |


