我有一个HTML onclick属性,我试图在keypress上动态添加其他属性而不删除现有属性。 换句话说......
说我有
<button onclick="doThis(1)">
每按一次按钮,我想添加一下按钮,这样第一次按下按钮就可以了
<button onclick="doThis(1), doThis(2)">
第三次:
<button onclick="doThis(1), doThis(2), doThis(3)">
等
有没有办法
document.getElementById("mybtn").onclick += doThis($n{index};
还是我必须独立构建字符串?
如果没有构建一个大字符串来添加到setAttribute,我似乎无法弄明白。当我尝试上面JS代码的变体时,我崩溃了浏览器:(
看看来看看!!
答案 0 :(得分:3)
好的,我真的不喜欢这个答案,但它确实能满足您的需求。我不喜欢它,因为它依赖于将事件处理程序设置为DOM对象的属性,而不是使用W3C DOM Level 2事件模型。但是,除此之外,你在这里......
window.doThisCounter = 1;
var eventList = "";
function doThis(){
console.log(eventList);
window.doThisCounter++;
eventList += "doThis(" + window.doThisCounter + ");";
btnGo.setAttribute("onclick", eventList);
}
// This will execute once, when page is ready:
window.addEventListener("DOMContentLoaded", function(){
var btn = document.getElementById("btnGo");
(function(counter){
eventList = "doThis(1);";
btnGo.setAttribute("onclick", eventList);
}(window.doThisCounter));
});
<button id="btnGo">Click Me!</button>