动态删除和添加onclick事件

时间:2015-05-21 00:49:25

标签: javascript html

我正在动态生成html字符串并向其添加事件,如下所示

htmlString = "<a href='#' class='save' onclick='callFunc(" + 4 + ")'>";

我现在需要动态删除此onclick事件,并使用不同的Id再次读取。

我怎样才能实现它?

1 个答案:

答案 0 :(得分:1)

假设callFunc是命名函数,您可以使element.onclick无效,然后添加绑定到新ID的新事件:

var newId = 10; 
var saveLink = document.querySelector('.save');
saveLink.onclick = null;
saveLink.onclick = callFunc.bind(saveLink, newId);

示例:https://jsfiddle.net/mqyyf0xu/

修改:使用您希望在用户点击链接时增加计数的新信息,我认为您应该修改您的方法,如下所示:

HTML:

<a href="#" class="like" data-likes="0">Likes <span class="like-count">0</span></a>

使用Javascript:

var likeButton = document.querySelector('.like');

likeButton.onclick = function() {
   var likeCountDisplay = this.querySelector('.like-count');
   var likeCount = parseInt(this.getAttribute('data-likes'), 10) + 1;
   this.setAttribute('data-likes', likeCount);
   likeCountDisplay.textContent = likeCount;
}

这是一个更新的小提琴:https://jsfiddle.net/mqyyf0xu/2/