/ / Tratar con $ (esto) cuando hay selector múltiple - javascript, jquery

Tratar con $ (esto) cuando hay un selector múltiple - javascript, jquery

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 № 1

Hacer 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