Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Modugno

Problemas com a função remove() e alguns seletores.

Recommended Posts

Bom galera, é o seguinte, estive estudando a respeito dessa funcao remove(). e consegui utiliza-la normalmente com o seletor $(this).parent() para estar removendo o proprio que estiver deletando o campo no qual estou clicando o botão.

Até ae beleza, funciona perfeitamente, mas agora o problema é que eu estou chamando uma modal para confirmação de exclusão, e no caso a div que essa modal abre, está fora da minha tabela (onde lista os posts vindos do banco). Então, eu gostaria de saber como eu faço pra selecionar aquela linha da tabela para ser removida? Eu tendei o seguinte.

 

$('.excluir').on('click', function(){
       $('a[post_id]').parent().parent().remove();
});

é mais ou menos isso ae a cima, onde .excluir é o botão que tem dntro da janela de confirmacao (modal), e o a[post_id] é o botão que CHAMA essa modal, o primeiro .parent() é o <td> e o segundo é o <tr>, no caso o pseudo-botao excluir da tabela. Se eu fizer dessa forma, ele realmente deleta a tabela, porem ele deleta TODAS hauisdhuiasdsa, ao invez de deletar apenas a que eu estou clicando em deletar (que chama a modal no caso). Esse atributo post_id eu que criei pra estar passando o id do usuario, que no caso estou mandando via json pra minha classe e estar deletando ele la. Mas enfim, como eu consigo acessar a linha do post a ser deletado?

 

Vale considerar que o html está mais ou menos assim:

<table>
             <tr>
                        <td>titulo</td>
                        <td>corpo</td>
                        <td><a href=''>Editar</a></td>
                        <td><a href='#deletemodal' post_id='<?php echo $post->post_id; ?>'>deletar</a></td>
             </tr>
</table>

<div id='deletemodal'>

<!-- pergunta pro cara se ele quer realmente deletar e tals -->
</div>

Não está exatamente assim os links e tals, mas a estrutura está.

 

como eu consigo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mais de qualquer forma não daria certo, por que é uma tabela, onde vem dados do banco, então terão centenas de linhas a tabela, imagina um id pra cada uma ahsudiasda, é de se pensar, mas deve haver uma maneira mais facil.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mais de qualquer forma não daria certo, por que é uma tabela, onde vem dados do banco, então terão centenas de linhas a tabela, imagina um id pra cada uma ahsudiasda, é de se pensar, mas deve haver uma maneira mais facil.

 

Geralmente assim que acontece meu caro

Compartilhar este post


Link para o post
Compartilhar em outros sites

vc falou sobre this, mas não usou.

 

Use:

$('.excluir').on('click', function(){
       $(this).parents('tr').remove();
});

E não, não precisa de ID. Basta saber manipular o DOM corretamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então William, na verdade, eu só queria que esse fosse removido, apos a confirmação do usuario. E nesse caso, só de eu clicar no botão excluir (que é o que chama a modal) ele ja estaria removendo da tela, antes mesmo deu confirmar. Por isso o this não seria bem vindo nessa ocasião ai. Eu que me especifiquei mal ali em cima, mas dentro da <a href="#deleteform"></a> existe uma classe .excluir, ela quem chama a minha modal que contem o botao que realmente ira excluir, só que esse botão, fica dentro de uma div que não tem nada a ver com a table, por isso o this e o parent não foi usado.. talvez o ID seja uma solução, porem seria tenso criar um metodo só pra setar isso KOPASKPDOASD deve haver outra maneira D:

Compartilhar este post


Link para o post
Compartilhar em outros sites

envie o this para a função que abre o modal.

 

ai o modal vai saber quem é o this.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então pensei nisso mesmo. Mas como eu faria isso Bruno?

 

$('.excluir').click(function(event){

$('#deletepost').modal(event);

});

 

tipo isso?

Ah, esse modal não foi eu quem criei, estou usando o do twitter bootstrap., e funcao que chama a modal é essa (modal) ae..

Na documentação, ele diz que da pra eu usar data-backdrop como opção, alias não sei exatamente se é ela que recebe os dados. Mas aparentemente é sim. Mas como eu faço pra mandar pra ela?

Compartilhar este post


Link para o post
Compartilhar em outros sites

uma forma é guardar o this numa variavel global, e ler ela dentro do modal.

 

por exemplo:

var $linhaEscolhidaParaExcluir;

$('.excluir').click(function(event){
  $linhaEscolhidaParaExcluir = $this.parents("tr");
  $('#deletepost').modal(event);
});

ai dentro do modal, vc lê essa variavel e remove ela

$linhaEscolhidaParaExcluir.remove();

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.