菜鸟提问jQuery问题。。

蜗牛快跑 发布于 2012/07/20 17:25
阅读 312
收藏 0
<!DOCTYPE HTML>
<html>
<head>
	<meta charset="UTF-8">
	<title></title>
<script type="text/javascript" src="../jQuery v1.7.2.js"></script>
<script type="text/javascript">
$(function(){
	$("p").click(function(i){
		this.style.color = ["#f00","#0f0","#00f"][i];
	});
});
</script>
</head>

<body>
	<p>测试内容1</p>
	<p>测试内容2</p>
	<p>测试内容3</p>
</body>
</html>

我想为三个p添加一个事件,点击后文本能变成指定的颜色。为什么没有效果呢?

加载中
1
n
nanyongzhenjiba

.click( handler(eventObject) )

handler(eventObject)A function to execute each time the event is triggered.

jquery中click方法中handler方法里的参数不是序号.而是个包装过的event对象.所以 ["#f00","#0f0","#00f"][i];是取不到东西的

1
a
alvinte
$(function(){
    var colors =  ["#f00","#0f0","#00f"];
    $("p").click(function(){
        $(this).css("color",colors[$(this).index()%colors.length]);
    });
});
a
alvinte
回复 @皮总 : 可怕了,闻所未闻啊,又长见识了……话说这上万的后台开发也……
皮总
皮总
回复 @alvinte : 我们一直招不到好的前端 , 结果一帮上万月薪的人后台开发人员, 写出3Mb 的 js 用在首页, 无语到极点.
32789mm3600
32789mm3600
回复 @皮总 : 取模运算,保证索引指针有效
a
alvinte
回复 @皮总 : 当然求余数的运算还是很影响效率的,所以尽量从数据上保证匹配最好,能回避问题总比解决问题来的更好!
皮总
皮总
回复 @alvinte : 很好, 我们急需你这样的前端
下一页
0
Midnight
Midnight
果然是开源社区啊, 什么问题都上来问, 自己不会学习吗?
Midnight
Midnight
回复 @王振威 : 这谈不上是打击, 只是想让人家自己多努力, 而不是张口就问
王振威
王振威
不要打击新手哦
0
小姚
小姚
$('p').click(function(){
      this.css('color','red');  
})
0
小姚
小姚
$('p').click(function(){
     $(this).css('color','red');   
})
0
逝水fox
逝水fox

参数i实际上不是表示序号,楼主你alert(i) 加个这个看一下就明白了。

0
nanlong
nanlong
你需要把变量 i 替换成 $(this).index() 这样才能取到你想要的值 , 乱写是不成的。
返回顶部
顶部