jQuery mudar somente quando já existe em div

Atualmente tenho uma página com um div com um ID torno de um botão sim e não. Quando os botões são selecionados, o jQuery substitui a informação no ID com o arquivo add_song.php que ele chama.

Eu tenho uma change ao vivo e chave ao vivo em uma lista suspensa na página quando o artista muda, muda o ID do artista em add_song.php . O problema é quando eu estou selecionando sim ou não, se eu mudar o nome do artista que ele carrega add_song.php .

Como eu só permito change e chave para mudar o artista quando o add_song.php estiver carregando após o clique do botão sim ou não, em vez de carregar quando o artista é alterado na change / chave.

Aqui está o PHP:

 echo ''; echo ''; echo '
';

Desculpe, aqui está o código jquery:

 $(document).ready(function(){ $("#add_new_song").live("click", function() { var artistid = $("#artist").val(); $("#display_add_new_song").load("php/add_song_new.php?var1=" + artistid); }); }); $(document).ready(function(){ $("#artist").change(function() { var artistid = $("#artist").val(); $("#display_add_new_song").load("php/add_song_new.php?var1=" + artistid); }); }); $(document).ready(function(){ $("#artist").keyup(function() { var artistid = $("#artist").val(); $("#display_add_new_song").load("php/add_song_new.php?var1=" + artistid); }); }); 

Você deve mover a vinculação de evento de keyup / change para a function de retorno de chamada .load . .load pode ter um segundo parâmetro, que é um retorno de chamada a ser executado logo após o conteúdo ter sido carregado por ele, permitindo que você vincule os events ao #artist logo após carregá-lo.

Além disso, você pode mesclar JavaScript para ser executado após o documento pronto em um bloco, e você pode combinar events que você deseja vincular à mesma funcionalidade, o que irá remover um pouco de código duplicado em seus scripts.

Considerando o seu código, você deve alterá-lo para algo como isto:

 $(document).ready(function(){ $("#add_new_song").live("click", function() { var artistid = $("#artist").val(); $("#display_add_new_song").load("php/add_song_new.php?var1=" + artistid, function(){ $("#artist").on("keyup change", function() { var artistid = $("#artist").val(); $("#display_add_new_song").load("php/add_song_new.php?var1=" + artistid); }); }); }); });