2

当我有多个具有相同类的 div 时,如何仅在 div 上执行操作

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

当鼠标进入一个 div 时,另一个 div 也会有动作,我该如何解决这个问题

我只希望我的鼠标进入的 div 采取行动,而不是其他的,最好的解决方案是什么?

4

5 回答 5

6

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

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

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

于 2012-01-21T11:20:09.840 回答
2

很简单,例如使用$(this)

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

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

于 2012-01-21T11:16:15.837 回答
1

你需要的是一个“当前”的 div 概念。

  1. 在 mouseenter 处理程序的开头:

    $(".trbl").removeClass("current"); $(this).addClass("current");

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

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

于 2012-01-21T11:17:59.747 回答
0

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

于 2012-01-21T11:19:33.867 回答
0

使用$(this).children(".fromTopToBottom")而不是$(".fromTopToBottom").

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

于 2012-01-21T11:24:20.883 回答