rockrgo 138 Denunciar post Postado Setembro 13, 2013 Bom dia pessoal, como faço para obter o mesmo resultado de: <a href="#"></a> com a função anchor() do codeigniter? Pois se faço: anchor("#","Link") minha página é direcionada para a home. Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Setembro 13, 2013 n tenho certeza, acho ele ve o '#' e como não é um nome de controller ele redireciona para a pagina padrão. Compartilhar este post Link para o post Compartilhar em outros sites
rockrgo 138 Denunciar post Postado Setembro 13, 2013 isso que eu imaginei....esse meu link chama uma função ajax, já coloquei .preventDefault(); na chamada da função mas não está rolando! Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Setembro 13, 2013 esse ajax vc esta chamando no onlick do link correto? posta esse trecho de codigo ai Compartilhar este post Link para o post Compartilhar em outros sites
rockrgo 138 Denunciar post Postado Setembro 13, 2013 $('.check').live('click',function(e) { e.preventDefault(); var id = $(this).data('id'); $.ajax({ type: "POST", url: "<?php echo base_url('tarefas/concluir')?>", data: { concluir: id} }).done(function() { window.reload(); }); }); Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Setembro 13, 2013 lembrei tenho o ci aqui rs, veja se esse exemplo te ajuda, <script> function teste(){ alert('não redirecione'); } </script> <?php echo anchor('#','teste', array('onclick' => 'teste(); return false;' )); Compartilhar este post Link para o post Compartilhar em outros sites
rockrgo 138 Denunciar post Postado Setembro 13, 2013 tentei assim cara mas não rolou ve se tem algo errado. anchor("#",'<i class="icon icon-checkmark"></i>','class="check" data-id="'.$linha->id.'" title="Concluir" onclick="concluir(); return false;"') <script> //Conclui a tarefa function concluir() { concluir.preventDefault(); var id = $(this).data('id'); $.ajax({ type: "POST", url: "<?php echo base_url('tarefas/concluir')?>", data: { concluir: id} }).done(function() { window.reload(); }); }; </script> //código gerado <a href="http://localhost/workflow-novo/#" class="check" data-id="19" title="Concluir" onclick="teste(); return false;"><i class="icon icon-checkmark"></i></a> cara copiei e colei seu código fora do meu conteúdo e funcionou...acho que o que está ferrando é que meu link está dentro de uma <tr> que tbm tem uma chamada javascript e estou usando nesta chamada a função .stopPropagation(). Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Setembro 13, 2013 ainda n deu tempo de testar aqui, acho o problema é o ajax tente deixar ele sincrono, async: false <script> //Conclui a tarefa function concluir() { concluir.preventDefault(); var id = $(this).data('id'); $.ajax({ type: "POST", url: "<?php echo base_url('tarefas/concluir')?>", data: { concluir: id}, async: false }).done(function() { window.reload(); }); }; anchor("#",'<i class="icon icon-checkmark"></i>','class="check" data-id="'.$linha->id.'" title="Concluir" onclick="concluir(); return false;"') </script> Compartilhar este post Link para o post Compartilhar em outros sites
rockrgo 138 Denunciar post Postado Setembro 13, 2013 Cara acabei de conseguir. meu código ficou assim e funcionou. //Conclui a tarefa $('.check').click( function(e) { e.stopPropagation(); e.preventDefault(); var id = $(this).data('id'); $.ajax({ type: "POST", url: "<?php echo base_url('tarefas/concluir')?>", data: { concluir: id} }).done(function() { alert("Tarefa concluída"); location.reload(); }); }); Valeu pela força cara! ajudou bastante! Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Setembro 13, 2013 qual é a diferença? o stopPropagation()? Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Setembro 13, 2013 Ah, vocês estavam chamando [inline]preventDefault[/inline] no método e não no evento. Compartilhar este post Link para o post Compartilhar em outros sites
rockrgo 138 Denunciar post Postado Setembro 13, 2013 o stopPropagation impede do <a> executar tbm o evento da <tr>, eu estava usando o stopPropagation no evento da tr e não no link. Ah, vocês estavam chamando [inline]preventDefault[/inline] no método e não no evento. Não entendi Evandro. Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Setembro 13, 2013 Não entendi Evandro. function concluir() { concluir.preventDefault(); // <--- concluir.preventDefault() // A função concluir não possui o método // preventDefault // quem possui este método é o evento que ela recebe // como primeiro argumento. Como na sua solução: $('.check').click( function(e) { // <--- Argumento "e" de "evento" e.stopPropagation(); // ... e.preventDefault(); // eventos possuem o método preventDefault // A correção na forma anterior ficaria: function concluir(event) { // Recebemos o evento event.preventDefault() // Prevenimos a ação padrão Quando estiver utilizando jQuery, basta retornar [inline]false[/inline] dentro do método.$('a').click(function () { return false; // nenhum link da página levará para outro lugar }); Compartilhar este post Link para o post Compartilhar em outros sites
rockrgo 138 Denunciar post Postado Setembro 13, 2013 entendi, valeu pela explicação Evandro, comecei com javascript a pouco tempo, ainda estou apanhando bastante! Compartilhar este post Link para o post Compartilhar em outros sites