如果链接由js添加,则event.preventDefault()不起作用

时间:2017-03-20 03:18:56

标签: javascript jquery

我遇到了event.preventDefault()的问题,因为事件没有停止。

我有两个不同的功能。第一个函数是xhrCall并显示所有帖子并将结果附加到表中。在这个函数中,我创建了一个class =“del”和href =“#”的链接。

 $.each(data, function(i, data){
     $('#listMsg').append('<tr><td>' + data.id + '</td><td>' + data.msg + '</td><td><a class="del" rel="'+ data.id + '" href="#"> delete</a></td></tr>');
 });

我的下一个功能是处理删除。

 $(". del").click(function(e) {
    e.preventDefault();
    var id = $(this).attr('rel')
    alert('delete + ' + id);
 });

如果我将链接直接复制到具有相同类的index.php文件中,则代码可以正常工作!

不幸的是,我不知道我错过了什么或如何与插入js的链接交谈。

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:2)

你说你在用ajax添加链接了吗?如果是这样,你需要这样做:

$("#listMsg").on("click", ".del", function(e) {
    e.preventDefault();
    var id = $(this).attr('rel')
    alert('delete + ' + id);
 });

如果Jquery是1.7或更早版本,就这样做

$("#listMsg").delegate( ".del", "click", function(e) {
    e.preventDefault();
    var id = $(this).attr('rel')
    alert('delete + ' + id);
 });