2011-03-14 13 views
5

Tengo una jerarquía de DIV con clases asociadas pero no identificadores. ¿Cómo puedo eliminar el elemento al que se hace clic?jquery detección y eliminación de un elemento al que se ha hecho clic

<div> 
    <div class="minibox" onclick="remove_me()">Box1</div> 
    <div class="minibox" onclick="remove_me()">Box1</div> 
    <div class="minibox" onclick="remove_me()">Box1</div> 
    <div class="minibox" onclick="remove_me()">Box1</div> 
    <div class="minibox" onclick="remove_me()">Box1</div> 
</div> 
<script> 
    function remove_me(){ 
    ///remove the clicked div 
    } 
</script> 

Respuesta

10
$('div .minibox').click(function(e){ 
    $(e.target).remove(); 
}); 
1
<div class="box">Box 1</div> 
<div class="box">Box 2</div> 
<div class="box">Box 3</div> 
<div class="box">Box 4</div> 
<div class="box">Box 5</div> 

allí tendría que utilizar

$(".box").bind("click", function() { 

    $(this).fadeOut(500, function() { 
    // now that the fade completed 
    $(this).remove(); 
    }); 

}); 

Ejemplo de JSBIN

+1

qué .fadeIn() ?? – meo

+1

'fadeIn' era un error tipográfico, es' fadeOut' y agregó un ejemplo, el objetivo es dar un buen efecto de eliminación, por lo que no se "acaba" ... se trata de técnicas de interfaz de usuario, estoy acostumbrado a deja que los usuarios sepan lo que está sucediendo y nunca haré algo así como desaparecer una fila div/table/otro elemento sin un simple efecto de desaparición. – balexandre

+0

Claro que yo. Eche un vistazo a mi ejemplo. El usuario debe saber qué va a pasar antes de hacer clic. Pero fadeOut sería más parecido a eliminar para mí;) Al menos para eliminar en la devolución de llamada. En su ejemplo, la animación de fundido no tendrá tiempo para terminar antes de que el elemento se elimine. – meo

5
$('.minibox').click(function() { $(this).remove(); }); 
2

Dentro del evento jQuery document.ready(), es necesario enlazar un controlador de clic a la div 'S

$(document).ready(function() { 
    $('.minibox').click(function(e){ 
     $(this).remove(); 
    }); 
}); 

Salida jQuery y remove()click().

El this dentro del controlador de eventos hace referencia al elemento sobre el que se hizo clic.

1
$(document).ready(function() { 
    $('.minibox').click(function() { 
    $(this).remove(); 
    }); 
}); 

Echa un vistazo remove().

1

Si puede utilizar jQuery para registrar su evento es tan fácil como:

$(".minibox").click(function(){ 
    $(this).remove(); 
}); 

ejemplo Código de jsfiddle.

1

su html:

<div class="box">some content</div> 
<div class="box">some content</div> 
<div class="box">some content</div> 
<div class="box">some content</div> 
ect... 

su jQuery

$(function(){ //make sure your DOM is ready 
$("div.box").click(function(){ // bind click on every div that has the class box 
    $(this).remove(); //remove the clicked element from the dom 
}); 
}); 

demo con la animación fadeOut: http://jsfiddle.net/qJHyL/1/ (y la fantasía icono de eliminación)

2

Cambio

<div class="minibox" onclick="remove_me()">Box1</div> 

a

<div class="minibox" onclick="remove_me(this)">Box1</div> 

a continuación, utilizar

<script> 
function remove_me(elm){ 
    $(elm).remove(); 
} 
</script> 
Cuestiones relacionadas