0

我是 Jquery 的新手。我正在尝试在 Jquery 和 AJAX 中执行一些基本功能并即时生成 HTML。但是对于 "$(document).ready(function ()" 它不起作用。

$(function () 
{
 $.ajax({ 
  type: "POST",                                     
  url: 'api.php',                  //the script to call to get data          
  //data: { id:2 },                  //you can insert url argumnets here to pass to api.php
                                   //for example "id=5&parent=6"
  dataType: 'json',                //data format      
  success: function(data)          //on recieve of reply
  {
    $('#root').append('<div id="try"></div>');
    for(var i = 0; i < data.length; i++)
    {
      var cssId = 'writings'+ i;
      var id  = data[i][0];
      var name = data[i][1];
      //$('#root').append("id: "+id); //Set output element html
      $('#try').append('<div class="names" id="'+cssId+'">'+name);
      $('#'+cssId).append('<a href="#" class="edit" id="img1"><img src="img/edit.png"></a>');
      $('#'+cssId).append('<a href="#" class="delete" id="img2"><img src="img/delete.png"></a>');
      $('#try').append('</div>');
    }
  } 
 });
});

$(document).ready(function () {
$('#img1').on('click', function() {
$(this).remove();
});
});

对于第一个代码块,它会生成这样的 html [1]: http: //postimg.org/image/nphmjutlz/ “屏幕截图”。但是当我单击编辑或删除按钮时,它不起作用。根据我的代码,它应该被删除。

提前致谢。

4

1 回答 1

2

使用这个(外部document.ready):

$(document).on('click','#img1', function(){
   $(this).remove();
});

当您创建元素(在本例中为#img1)时,这无关紧要。

只有在 $('#img1').on('click', ..... 之前存在 #img1 时,您的代码才有效

于 2013-05-25T02:36:59.367 回答