В настоящее время у меня есть страница с div
с ID
окружающим кнопку «Да» и «Нет». Когда кнопки выбраны, jQuery заменяет информацию в ID
с add_song.php
файла add_song.php
который он вызывает.
У меня есть живое change
и живая keyup
при выпадающем add_song.php
на странице, когда художник меняет его, меняет идентификатор исполнителя в add_song.php
. Проблема в том, что я выбираю «да» или «нет», если я изменяю имя исполнителя, он загружает add_song.php
.
Как мне разрешить change
и keyup
чтобы изменить исполнителя, когда add_song.php
загружался после нажатия кнопки «Да» или «Нет», вместо того, чтобы загружать его, когда художник был изменен при change
/ keyup
.
Вот PHP:
echo '<span class="edit-buttons"><input type="submit" value="yes" id="add_existing_song"></span>'; echo '<span style="padding-left:10px" class="edit-buttons"><input type="submit" value="no" id="add_new_song"></span>'; echo '<div id="display_add_new_song"></div>';
Извините, вот код 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); }); });
Вы должны переместить привязку события keyup
/ change
в .load
обратного вызова .load
. .load
может принимать второй параметр, который является обратным вызовом, который должен выполняться сразу после загрузки содержимого, позволяя вам связать события с #artist
сразу после его загрузки.
Кроме того, вы можете объединить JavaScript, который будет выполнен после того, как документ будет готов к одному блоку, и вы можете объединить события, которые вы хотите привязать к тем же функциям, которые удаляют немного дублированного кода в ваших сценариях.
Учитывая ваш код, вы должны изменить его на следующее:
$(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); }); }); }); });