不能在AJAX中使用成功函数的div

ech*_*_Me 8 javascript ajax jquery

我不知道为什么这对我不起作用.

  }).success(function(data){
    if(data.status == 'success'){
            // $("#useravatar").empty();

                for(i = 0;i < data.id.length; i++){
            $("#useravatar").prepend('<div id="av'+data.id[i]+'" class="avatar">'+data.avatar[i]+'</div>');
            var dropDiv = $('#av'+data.id[i]);  // Code from here dont work. No error. tried alert(data.id[i]); and is fine.

        dropDiv.css({
        left: 130,
        top: -190,
        opacity: 0,
        display: 'inline'
    }).animate({
        left: 5,
        top: 10,
        opacity: 1
    }, 7000, 'easeOutBounce');

            }

            }

});
Run Code Online (Sandbox Code Playgroud)

如果我单独使用此代码:

  var dropDiv = $('#useravatar');  

        dropDiv.css({
        left: 130,
        top: -190,
        opacity: 0,
        display: 'inline'
    }).animate({
        left: 5,
        top: 10,
        opacity: 1
    }, 7000, 'easeOutBounce');
Run Code Online (Sandbox Code Playgroud)

将与该div一起工作.

我的问题是为什么第一个div不起作用?我怎样才能让div下载动画?

编辑:

我已经在同一个文件中尝试了所有上述代码:但它也不起作用(第二个函数没有被调用或没有做任何事情).

 function getchatuser() {
    $.ajax({
       type: "POST",
       url: "../users/process.php",
       data: {getchatuser: "getchatuser"},
       cache: false,
       dataType: 'json',
       async: false
    }).success(function (dat) {
          if (dat.status == 'success') {
              //$("#useravatar").empty();
                 for (i = 0; i < dat.id.length; i++) {
                   $("#useravatar").prepend('<div id="av' + dat.id[i] + '" class="avatar">' + dat.avatar[i] + '</div>');


                dropdivs(dat.id[i]);

        }
    }

  });
  }

 function dropdivs(idDiv) {
       // alert(idDiv); ----------> just to try this and it works got 112
     dropDiv = $('#av' + idDiv);
     dropDiv.css({
                 left: 130,
                  top: -190,
              opacity: 0,
              display: 'inline'
         }).animate({
                 left: 5,
                  top: 10,
              opacity: 1
     }, 7000, 'easeOutBounce');
  }
Run Code Online (Sandbox Code Playgroud)

小智 1

尝试这个:

var dropDiv = $('<div id="av' + data.id[i] + '" class="avatar">' + data.avatar[i] + '</div>');
$("#useravatar").prepend(dropDiv);
Run Code Online (Sandbox Code Playgroud)

无需使用 jQuery 选择器来查找您之前创建的元素。上面的代码应该是更快一点的解决方案。