我正在动态生成html字符串并向其添加事件,如下所示
htmlString = "<a href='#' class='save' onclick='callFunc(" + 4 + ")'>";
我现在需要动态删除此onclick事件,并使用不同的Id再次读取。
我怎样才能实现它?
答案 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/