Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá to quebrando a cabeça aqui e não consegui resolver ainda, por isso venho pedir ajuda aos amigos do forum.
O que eu preciso é que quando o botão for clickado o tr.linhaPrincipal e o tr.linhaChild sejam escondidos, levando em conta é claro que os elementos que precisam ser escondidos são:
O "tr" que tem o botão (classe linhaChild)
O "tr" anterior ao tr citado acima (classe linhaPrincipal)
Qualquer duvida é só perguntar, ahh os dados da tabela serão carregados por ajax (não que isso venha ao caso)
<html>
<body>
<table>
<tr class='linhaPrincipal'>
<td>a</td>
<td>b</td>
<td>c</td>
<td>d</td>
<td>e</td>
</tr>
<tr class='linhaChild'>
<td colspan='5'>
<div>
Botao Editar
</div>
<div>
<input name='editarProduto' type='button' value='Editar' />
</div>
</td>
</tr>
<tr class='linhaPrincipal'>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>5</td>
</tr>
<tr class='linhaChild'>
<td colspan='5'>
<div>
Botao Editar
</div>
<div>
<input name='editarProduto' type='button' value='Editar' />
</div>
</td>
</tr>
</table>
</body>
</html>
<script type="text/javascript" src="jquery.js"></script>
<script>
$(document).ready(function() {
$('input[name=editarProduto]').live('click', function(){
$(this).hide();
});
});
</script>Então william... com o parents ele ta pegando apenas o <tr class='linhaChild'>
achei uma função na net que consegui resolver:
$.fn.reverse = function() {
return this.pushStack(this.get().reverse(), arguments);
};
$.each( ['prev', 'next'], function(unusedIndex, name) {
$.fn[ name + 'ALL' ] = function(matchExpr) {
var $all = $('body').find('*').andSelf();
$all = (name == 'prev')? $all.slice(0, $all.index(this)).reverse(): $all.slice($all.index(this) + 1);
if (matchExpr) $all = $all.filter(matchExpr);
return $all};
});
$('input[name=editarProduto]').live('click', function(){
$(this).prevALL('tr:eq(1)').html("<td>C</td><td>H</td><td>A</td><td>N</td><td>GED</td>");
$(this).parents("tr").html("<td colspan='5'>DETAILS</td>");
});
});
inicio:
você precisará da função .live() para atrelar os eventos aos objetos que virão via ajax.