1

我有一点 jQuery(请原谅可怕的 html 附加 - 这些最终将被缩短!)

$(function () {
  $(".follow").click(function () {
    var element = $(this);
    var I = element.data("userid");
    var info = 'id=' + I;
    var Something = $('#latestbettors tr[data-userid=' + I + ']').find('td:eq(0)').text();

    $.ajax({
      type: "POST",
      url: "follow.php",
      data: info,
      success: function () {
        $('.follow[data-userid=' + I + ']').fadeOut(200).hide();
        $('.following[data-userid=' + I + ']').fadeIn(200).show();
        if ($('#yourfollowers table tr > td:contains("You arent currently following any bettors")')) {
          $('#yourfollowers table tr:contains("You aren\'t currently following any bettors")').remove();
        }
        if ($('#yourfollowers tr:contains("' + I + '")') && $('#yourfollowers tr > td:contains("' + Something + '")').length < 1) $('#yourfollowers table').fadeIn(200).append("<tr data-userid='" + I + "'><td>" + Something + "</td><td><a href='#'data-userid='" + I + "' class='following'></a><a href='#' data-userid='" + I + "' class='follow' style='display:none'></a></td></tr>");
      }
    });
    return false;
  });
});

$(function () {
  $(".following").click(function () {
    var element = $(this);
    var J = element.data("userid");
    var infos = 'id=' + J;

    $.ajax({
      type: "POST",
      url: "unfollow.php",
      data: infos,
      success: function () {
        $('.following[data-userid=' + J + ']').fadeOut(200).hide();
        $('.follow[data-userid=' + J + ']').fadeIn(200).show();
        $('#yourfollowers tr[data-userid=' + J + ']').fadeOut(200).remove();

        if ($('#yourfollowers table tr').length == 0) {
          $('#yourfollowers table').append('<tr><td>You aren\'t currently following any bettors</td></tr>');
        }
      }
    });
    return false;
  });
});

我有两张桌子——最新的投注者和关注者。最新的投注者表包括所有新注册的用户,每个用户旁边都有一个关注按钮(如果用户关注他们,则关注他们)......下表包括用户正在关注的所有用户,每个用户旁边都有一个关注按钮。

当用户单击“最新投注者”表中的关注按钮时,它会将他们关注的用户附加到“关注表” - 这很有效。但是,当用户在“关注”表中单击“关注”按钮后 - 什么也没有发生?为什么是这样?

4

1 回答 1

2

对于动态生成的元素,事件应该从元素或文档对象的静态父对象之一委托,您可以使用onordelegate方法:

$(document).on('click', '.following', function(){

如果您使用 1.7 以下版本的 jQuery,您还可以使用delegate方法:

$(document).delegate('.following', 'click', function(){    

@Exception更新:

你也可以使用

$('.following').live('click', function(){    

live在最新版本的 jQuery 中已弃用。如果您使用旧的 jQuery 版本,它现在可能可以工作,但它可能不适用于您使用的最新版本的 jQuery。

于 2012-12-29T11:33:50.820 回答