Ahora cuando hay efecto como animado aplicado en selector múltiple
$(".foo,.bar").animate({width: "250"}, "slow",function(){
console.log($(this));
});
El registro de la consola vuelve dos veces para .foo
y .bar
Entonces, ¿cómo puedo hacer otros eventos basados en esto? .foo
solamente.
Algo como esto $(this)+".foo"
<< esto está mal
Necesito hacer otros eventos basados en la ubicación de (esta) .foo
Respuestas
6 para la respuesta № 1Hacer un selector separado para $(".foo")
, o filtrar el selector existente hacia abajo con filter(".foo")
. Esto sería lo mejor, desde el principio, para vincular animaciones / eventos al conjunto de elementos correcto.
O compruebe, en el animado callback, si $(this).is(".foo")
o $(this).hasClass("foo")
. Este enfoque sería mejor si sus animaciones / eventos ya están vinculados, pero debe averiguar en qué tipo de elemento DOM se han activado.
Por lo general, vincular las cosas exactamente como usted quiere (el primer enfoque) es mejor, pero depende de lo que está tratando de hacer exactamente.
Ver:
2 para la respuesta № 2
Utilizar .filter()
$(this).filter(".foo").dosomething()
Si el this
es un .goo
elemento entonces $(this).filter(".foo")
no devolverá nada, por lo que las acciones posteriores no afectarán a la .goo
elementos