求高人优化下js。 jquery优化, jquery1.3.

老大做IT 发布于 2012/07/23 11:04
阅读 218
收藏 0
    function change(obj){
   
    $("a").each(
        function(){
            if($(this).attr("class") == "oneD on"){
                $(this).removeClass("oneD on");
                $(this).addClass("oneD");
            }
        }
    );
    obj.className = "oneD on";

    }

 

这个方法的目的是:

左边树状结构目录,每点击一个目录,高亮显示,其他目录恢复。该方法已经实现(修改class属性),但是感觉比较麻烦,遍历所有a标签。有没有更好的方法?

目录html标签:

普通目录:

<a  class="oneD" onclick="javascript:change(this)"  title=""><em></em>呱呱视频</a>

高亮目录:区别,class 不同。

<a  class="oneD on" onclick="javascript:change(this)"  title="" ><em></em>呱呱视频</a>

 

 

加载中
0
卖豆浆不卖油条
卖豆浆不卖油条
$(function(){
	$("a").click(function(){
		$("a").removeClass("on");
		$(this).addClass("on");
	});
});

去掉a标签中的onclick事件,加入上面的js代码就行了,不要杂合着写。在客户端,对于少量元素的遍历,对效率影响不大,你前面的选择器($("a"))写得好就会更快。
老大做IT
老大做IT
谢谢了,朋友。
0
Andre.Z
Andre.Z
一次只显示一个?弄个变量保存下上次那个不就行了么。
Andre.Z
Andre.Z
回复 @xd111256 : id没有,不代表没对象。
Andre.Z
Andre.Z
回复 @xd111256 : 这玩意也就是上次点的对象(如果有的话),去掉"on",自身加"on",然后,那个变量指到自己,就好了。这样还有遍历?
Andre.Z
Andre.Z
回复 @xd111256 : 真是无语了,保存下你上次点的是哪个对象,明白?
老大做IT
老大做IT
保存什么变量?你也看到了,我这a标签是没有id的。只有class不同。
0
微凉的风
微凉的风
$("a.oneD").click(function(){
    $("a.oneD").removeClass("on");//去掉所有的on样式
    $(this).addClass("on");//为当前被点击的a添加on样式
});

还有,就是要把a标签的onclick属性去掉 :D
老大做IT
老大做IT
感谢,两位的方法我都试了。都可以。谢谢了。
返回顶部
顶部