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); }); }); }); });