Ir para conteúdo

Arquivado

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

weslleysolo

live() não funciona mais na nova versao do jquery

Recommended Posts

Amigos, boa tarde...acabei de montar minha aplicação e me deparei com esse problema,.

 

Tenho um form no qual 2 campos são adicionados e removidos dinamicamente...a função é parecida com a abaixo

 

$(function() {
    var scntDiv = $('#p_scents');
    var i = $('#p_scents p').size() + 1;

    $('#addScnt').live('click', function() {
            $('<p><label for="p_scnts"><input type="text" id="p_scnt" size="20" name="p_scnt_' + i +'" value="" placeholder="Input Value" /></label> <a href="#" id="remScnt">Remove</a></p>').appendTo(scntDiv);
            i++;
            return false;
    });

    $('#remScnt').live('click', function() {
            if( i > 2 ) {
                    $(this).parents('p').remove();
                    i--;
            }
            return false;
    });
 });

porem a funcao live() não é mais reconhecida na nova versao do jquery...fui na documentação e subistitui pela funcao on()..

 

Eu consigo gerar novos campos, só nao consegui fazer remover.

 

Alguma dica?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aparece algum erro?

Experimentou colocar um alert assim [inline]$('#remScnt').live('click', function(){ alert('Chegando aqui'); });[/inline]

 

Se possível, poste o código que você fez utilizando o .on

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo...o erro é "live() is not function"

Segue condigo completo:

$(function() {
        var scntDiv = $('#x_solicitacao');
        var i = $('#x_solicitacao span').size() + 1;
        
        $('#solicitacao').on('click', function() {
                $('<span><br/><br/><div class="input-prepend"><span class="add-on">Material: </span><select class="span5" id="prependedInput" name="produtos[]"><?php echo $option;?></select></div> <div class="input-prepend"><span class="add-on">Quantidade: </span> <input class="span2" id="prependedInput" type="text" name="quantidade[]" ></div> <a class="btn btn-danger" href="#" id="remove_solicitacao">-</a></span>').appendTo(scntDiv);
                i++;
                return false;
        });
        
        $('#remove_solicitacao').on('click', function() {
                if( i > 2 ) {
                        $(this).parents('span').remove();
                        i--;
                }
                return false;
        });
});

Já tentei um alert pra checar e nada acontece....eu consigo inserir o novo campo, mas remove-lo não.

Compartilhar este post


Link para o post
Compartilhar em outros sites

use classes, e não ID. Já que vc vai repetir o elemento:

 

 

$('.remove_solicitacao').on('click', function() {

 

..

class="remove_solicitacao"

Compartilhar este post


Link para o post
Compartilhar em outros sites

o método .live() foi substituído pelo .on() que é mais flexível de acordo com a jquery, por isso não está mais conseguindo

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.