我是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();
});
});
对于第一个代码块,它生成一个像这样的[1] html:http://postimg.org/image/nphmjutlz/“screenshot”。但是当我点击编辑或删除按钮时,它不起作用。根据我的代码,它应该删除。
提前致谢。
答案 0 :(得分:2)
使用它(在document.ready之外):
$(document).on('click','#img1', function(){
$(this).remove();
});
当您创建元素时(无论是#img1),这无关紧要。
只有在$('#img1')之前存在#img1时,您的代码才有效。('click',.....