开始的时候,我在页面上有这样一个 html 语句:
<td><i><a href="BlogAction_deleteBlog?bid=<s:property value='#mb.id'/>">删除</a></i></td>
我使用 jquery 为这个超链接增加了点击事件,希望使用 ajax 方式删除这一条记录,后台是 struts2 在处理。点击事件是这样的:
$("i > a").click(function(){
var $a = $(this).html();
alert($a);
if($a == "删除"){
//1.点击 delete 时,弹出警告信息
var flag = confirm("确定要删除吗?");
if(flag){
//使用 ajax 的方式删除
var url = this.href;
var args = {"time":new Date()};
//将 <td></td>节点所在行从页面删除
var $td = $(this).parent().parent().parent();
$.post(url,args,function(data){
//若 data 的返回值为 1 ,则提示删除成功,并将当前行删除
if(data == 1){
alert("删除成功!");
$td.remove();
} else{
//若 data 的返回值不为 1 ,则删除失败
alert("删除失败!");
}
});
}
//取消超链接的默认行为
return false;
}
});
后台通过返回 0 或 1 表示删除是否成功,目前这个可以正常工作。
后来我有新的要求,使用 jquery 动态生成了上面了那个 html 代码,就是这个:
<td><i><a href="BlogAction_deleteBlog?bid=<s:property value='#mb.id'/>">删除</a></i></td>
意思是这句 html 代码是我使用 jquery 代码动态拼出来的, jquery 代码是这样的:
var $td = $("<td></td>");
var $i = $("<i></i>");
var $delete = $("<a href='#'></a>");
$delete.attr('href','BlogAction_deleteBlog?bid='+element.blogId);
$delete.append("删除博客");
$i.append($delete);
$td.append($i);
可是这时候点击链接进行删除时,那段 ajax 动态删除的代码就不执行了,我使用 chrom 的开发者工具查看了动态生成后的页面代码,跟之前的格式是完全一样的,可是 ajax 删除的那段代码却不执行了,求大神解答,不胜感激!!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.