绑定click事件到表格tabel里的链接xxx,并发送ajax请求,成功后重载表格table部分,即执行$('#table').load(location.href + ' #table>*')。
此时再点击链接,点击事件无法执行,必须重新刷新页面。
如何修改?
html代码如下:
<table id="table">
<tr>
<th>分类名称</th>
<th>文章数量</th>
<th>分类排序</th>
<th>操作</th>
</tr>
<?php foreach ($catelist as $v) { ?>
<tr>
<td class="tdFirst"></td>
<td></td>
<td></td>
<td class="tdLast">
<a href="">编辑</a>
<a class="del" url="c.php?cid=<?php echo $v['cid'] ?>" href="javascript:;">移除</a>
</td>
</tr>
<?php } ?>
</table>
jquery代码如下:
$(function() {
$('.del').on('click', function() {
var url = $(this).attr('url');
$.ajax({
url: url,
type: 'GET',
success: function(res) {
$('#msg').fadeIn('slow').children().text(res);
$('#table').load(location.href + ' #table>*');
var timeId = function() {
$('#msg').fadeOut('slow');
};
setTimeout(timeId, 2000);
},
})
})
})
重载之后,之前绑定的事件就没了。用delegate将事件绑在父元素上,即$("#table").on('click','.del',handler)
试试。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。