0

我目前有一个页面,div周围ID有一个是和否按钮。选择按钮时,jQuery替换了其调用的文件中ID的信息。add_song.php

当艺术家更改它更改艺术家 ID 时,我在页面上的下拉菜单中进行了直播change和直播。问题是当我选择是或否时,如果我更改它加载的艺术家姓名。keyupadd_song.phpadd_song.php

我如何仅在单击是或否按钮后加载时才允许changekeyup更改艺术家,而不是在/更改艺术家时加载。add_song.phpchangekeyup

这是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);
});
});
4

1 回答 1

0

您应该将keyup/的事件绑定移动change.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);
            });
        });
    });
});
于 2012-06-14T21:19:05.013 回答