同名div如何在使用事件条件时实现单独效果--index($(this))

本期教程针对于javascript中jquery的事件效果实现,在多个一样div出现时,对单个div实行触发只会触发单个div,而不会出现整体同样div的触动。
那么教程开始,先看下代码样张与效果样张,上图上图:


效果样张:

单击效果样张:

释放实现代码:
$(function(){
//鼠标悬停事件
$(".b").hover(function(){
$(this).addClass("bb").addClass("bc");
},function(){
$(this).removeClass("bb").removeClass("bc");
});
//鼠标多个点击事件
$(".b").toggle(function(){
var index1=$(".b").index($(this));
$(".b img:eq("+index1+")").attr("src","images/-.jpg");
$(".c:eq("+index1+")").slideDown("slow");
$(".a:eq("+index1+")").addClass("bj");
} ,function(){
var index2=$(".b").index($(this));
$(".b img:eq("+index2+")").attr("src","images/+.jpg");
$(".c:eq("+index2+")").slideUp("slow");
$(".a:eq("+index2+")").removeClass("bj");
});
});
这里说一下,在jquery里面可以使用click点击事件,但在这里我们用toggle,方便些。这里我们是点击.b后触发事件,我们在点击同名div后的触发事件是单一的,不会让其它的class=b的div跟着触发。下面我们对以上toggle事件代码进行解析。
//获取点击的这个.b为第几个.b,并赋值给index1
注:获取的值是从0开始,eq:()方法的也是一样的,都是从零开始。
var index1=$(".b").index($(this));
//将index1带入eq:()方法
$(".b img:eq("+index1+")").attr("src","images/-.jpg");
$(".c:eq("+index1+")").slideDown("slow");
$(".a:eq("+index1+")").addClass("bj");
//比如我点击的是第一个.b,那么这里解析出来就是
$(".b img:eq(0)").attr("src","images/-.jpg");
$(".c:eq(0)").slideDown("slow");
$(".a:eq(0)").addClass("bj");
//同理,如果我点击的是第二个.b,那么这里解析出来就是
$(".b img:eq(1)").attr("src","images/-.jpg");
$(".c:eq(1)").slideDown("slow");
$(".a:eq(1)").addClass("bj");
这样就不会导致多个.b跟着一起执行事件
教程结束!
本章关键代码:
var index1=$(".b").index($(this));