当我有多个具有相同类的div时,我怎么能只在div上执行动作

时间:2012-01-21 11:12:06

标签: javascript jquery html css mouseenter

当我有多个具有相同类的div

时,我如何才能在div上执行操作

http://jsfiddle.net/kent93/Qw7bw/

当鼠标输入一个div时,另一个div也会有动作,我该怎么解决这个

我只想要我的鼠标进行操作的div,而不是其他,什么是最佳解决方案?

5 个答案:

答案 0 :(得分:6)

将每个位置的选择器更改为:$(this).children(".class")

例如,代码$(".fromTopToBottom")将更改为$(this).children(".fromTopToBottom")

演示: http://jsfiddle.net/Qw7bw/10/

答案 1 :(得分:2)

非常简单,使用$(this),例如

$('.mydivclass').mouseover(function(e){
    $(this).css('color','gray'); // Current element
});

如果div是嵌套的,那么你应该使用e.stopPropagation()来停止事件冒泡。

答案 2 :(得分:1)

您需要的是“当前”div概念。

  1. 在mouseenter handler的开头:

    $( “TRBL ”)removeClass(“ 当前”); $(本).addClass( “当前”);

  2. 在您的案例陈述中,$(".fromTopToBottom").css({...}) - > $(".current .fromTopToBottom").css({...})

  3. 效果检查http://jsfiddle.net/Qw7bw/7/

答案 3 :(得分:0)

在选择“.fromTopToBottom”和类似的类时,直接使用$(this).find(x)而不是$(x)。这允许jQuery仅选择悬停元素http://jsfiddle.net/Qw7bw/6/

的子元素

答案 4 :(得分:0)

使用$(this).children(".fromTopToBottom")代替$(".fromTopToBottom")

这将在您正在编写处理程序的元素内选择给定类的div。