La gran respuesta de User113716 ya no funcionará en jQuery 1.9+, porque el pseudo-evento hover
ya no se admite (upgrade guide).
También desde jQuery 3.0delegate()
para eventos de unión es obsoleto oficialmente, así que por favor utilice la nueva on()
(docs) a todos los efectos vinculantes de eventos.
Puede migrar fácilmente solución user113716 's mediante la sustitución de hover
con mouseenter mouseleave
y el cambio a la sintaxis on()
:
$('mydiv').on('mouseenter mouseleave', 'seconddiv', function(event) {
$(this).toggle(event.type === 'mouseenter');
});
Si su problema es más complejo que una simple toggle
, sugiero que vincule a dos eventos separados :
$('mydiv').on('mouseenter', 'seconddiv', function(event) {
// do something
}).on('mouseleave', 'seconddiv', function(event) {
// do something different
});
NB: Desde hover
se eliminó en v1.9 y on()
se introdujo en v1.7, no hay una necesidad real de una solución usando delegate()
- pero si le gusta por alguna razón; todavía está allí (por ahora) y hace el trabajo:
$('mydiv').delegate('seconddiv','mouseenter mouseleave', function(event) {
$(this).toggle(event.type === 'mouseenter');
});
Si proporciona un ejemplo de su HTML, puedo darle una respuesta más específica a su marcado. – user113716