jquery 添加A标记添加样式
<style>
.on { background-color:#000;}
</style>
<a href="a.html" onclick="on()">栏目1</a>
<a href="b.html" onclick="on()">栏目2</a>
<a href="c.html" onclick="on()">栏目3</a>
function on(){
$(this).click(function(){
$(this).addClass("on");
})
}
我的想法是 当点击【栏目1】, 给【栏目1】 添加 on 样式,点击【栏目2】移除【栏目1】的on样式,然后给【栏目2】添加 on样式,
初学者,自己试着写了下貌似不对
大神们给个思路
------解决方案--------------------var memory = null;
function on(){
$(this).click(function(){
$(memory).removeClass("on");
memory = this;
$(this).addClass("on");
})
}
------解决方案--------------------你可以一步一步的来,这次就先写,点击一个元素,就给某个元素添加一个class类。
这里的问题:
1:使用a标签就不合适了,a标签点击之后,就会进行跳转,也看不到样式的。
2:你是在on内部又添加了一个click事件,并且是使用的this操作,this的指向问题,你要清楚才能用的好,既然是初学,就先少用这个,只是说少用,也要一点点的去积累这些。
3:刚开始学的话,还是去练习一下给的例子,然后在例子的基础上进行扩展,代码嘛,总归是有些规则的,这些规则还是需要了解的。
------解决方案--------------------<div id = "id">
<p>栏目1</p>
<p>栏目2</p>
<p>栏目3</p>
<p>栏目4</p>
</div>
<script src = "js/jquery.js"></script>
<script type="text/javascript">
$("#id p").click(function(){
$("#id p").removeClass("on");
//上一行,把虽有的p中清楚 on
$(this).addClass("on");
//对当前的点击的p元素,添加class
});
</script>
还有一个问题,就是,如果使用jQuery就都使用jQuery呗,尽量不要混着用,容易出错,而且看起来也会有些乱。
你的那种写法的this是指向window的,所以是不行的。