Jump to content
Sign in to follow this  
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?

Share this post


Link to post
Share on other 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

Edited by fernandotholl

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other sites

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

 

 

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

 

..

class="remove_solicitacao"
  • +1 1

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.