【发布时间】:2016-11-07 16:42:17
【问题描述】:
我有一个 HTML onclick 属性,我试图在不删除现有属性的情况下在按键上动态添加其他属性。 也就是说……
说我有
<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 代码的变体时,我的浏览器崩溃了:(
谢谢你看看!!
【问题讨论】:
-
只有一个处理逻辑的 onclick 处理程序会更有意义。只需有一个数组,您可以在其中添加要使用给定参数运行的函数。然后您的处理程序可以简单地遍历数组并以正确的顺序执行它们。
-
@Liam 不,这不是一回事。
-
请考虑这可能是一个错字:
document.getLelemtById("mybtn").onclick += doThis($n{index};,应该是getElementById -
@GillesC 谢谢!问题是函数会根据用户交互动态增长或缩小。我需要相同的 onclick 来处理相同的功能,但可能需要同时调用几次。这个用例会在这个项目中多次出现,所以“setAttribute”类型的解决方案效果最好……如果可能的话。
标签: javascript html ecmascript-6