esta función Remove jQuery?
Pregunta
tengo un problema con este jQuery, en la llamada de función éxito, su media para eliminar el botón `apoyo', y se desvanecen en el MSG, este es mi código jQuery:
$('.stats').delegate('.against', 'click', function(e) {
//stop event
e.preventDefault();
// cache a reference to the previous <li> element
// since it is used more than once
var $prevLi = $(this).closest('li').prev('li');
//get the id
var the_id = $prevLi.attr('id').split('_').pop();
//the main ajax request
$.ajax({
context:this,
type: "POST",
data: "action=against&id=" + the_id,
url: "ajax/sa.php",
success: function (msg) {
$prevLi.find("h2.score_down").html(msg).fadeIn();
$(this).closest('li').next().next().find('button').remove(); $(this).remove();
}
});
});
el html:
<ul class="stats">
<li id="topic_20" class="score">
<h2 class="score_up" style="color:green;">10</h2>
<span style="text-align:center;">Supporters</span>
</li>
<li>
<button type="submit" value="Actions" class="support" title="support">
<i></i>
<span>Support</span>
</button>
</li>
<li id="down_20"class="score"><h2 class="score_down">20</h2><span style="text-align:center;">Against</span>
</li>
<li>
<button type="submit" value="Actions" class="against" title="against">
<i></i><span>Against</span></button>
</li>
</ul>
<h3 class="success"></h3>
este jQuery está destinado a quitar el botón de soporte, cuando se hace clic y la nueva puntuación está destinado a desaparecer en! :)) gracias
Solución
El botón se encuentra en la <li>
2 anterior a la .against
que contiene uno, por lo que su llamadas .next()
deben ser .prev()
, como esto:
$(this).closest('li').prev().prev().find('button').remove();
Otros consejos
¿Por qué no usar $ ( "botón [type = enviar]")? O simplemente $ ( "botón")? Si se utiliza el doble prev () vas a tener que ajustar su código cuando cambia su margen de beneficio. Si lo hace con bastante frecuencia, que hace que hacer cambios en una pesadilla más tarde.