javascript - 如何将js函数分配给一个类并在单击时获取id

标签 javascript html

我正在开发一个计算器,并且每个 id 都有 mousedown 和 mouseup 函数。有没有什么方法可以清理它,并在单击类元素​​时调用一个函数,并能够获取在函数内单击的 id?

这是 myfiddle calculator 的链接

另外,我注意到,当我将 javascript 直接放入 JS 框中时,它不起作用,但是作为嵌入 html 中的脚本,它可以正常工作。有人能解释一下为什么吗?

 <tr>
    <td class='noborder' colspan='1' rowspan='2'> </td>
    <td id='1' class='buttons' colspan='4' rowspan='2' onmousedown="mouseDown(this.id)" onmouseup="mouseUp(this.id)" ;>1</td>
    <td id='2' class='buttons' colspan='4' rowspan='2' onmousedown="mouseDown(this.id)" onmouseup="mouseUp(this.id)" ;>2</td>
    <td id='3' class='buttons' colspan='4' rowspan='2' onmousedown="mouseDown(this.id)" onmouseup="mouseUp(this.id)" ;>3</td>
    <td id='plus' class='buttons' colspan='4' onmousedown="mouseDown(this.id)" onmouseup="mouseUp(this.id)" ;>+</td>
    <td class='noborder' colspan='1' rowspan='2'> </td>
  </tr>


<script>
function mouseDown(id) {
document.getElementById(id).style.backgroundColor = "gray";
}

function mouseUp(id) {
document.getElementById(id).style.backgroundColor = "white";
}
</script>

最佳答案

我实现了一种如何在具有类的所有元素上添加 mousedown 和 mouseup 事件的方法:

var elements = document.getElementsByClassName("buttons");
for (var i = 0; i < elements.length; i++) {
    elements[i].onmousedown = function() {
        mouseDown(this.id);
        mouseUp(this.id);
    }
}

我在 w3schools.com 上测试过它.

(另外,我不知道你所说的 JS Box 是什么意思。抱歉。)

关于javascript - 如何将js函数分配给一个类并在单击时获取id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41991427/

相关文章:

javascript - 为什么谷歌环聊在最新的 Chrome 中支持共享桌面而没有 Chrome 扩展?

javascript - 添加/删除 CSS 类属性以尊重不基于 Div id 的类

html - 避免 CSS 美化为 sublime 3 上的每个标签创建新行

javascript - 通过 HTML 元素将变量传递给 javascript

html - django模板语言系统中图片标签和源的使用方法

javascript - 对于此 CSS 代码,我的网页没有上下移动?谁能告诉我这个问题?

javascript - 使用 Canvas 在 Javascript 中做一个圆圈旅行

javascript - 如何执行被用户的广告拦截器拦截的外部 JS 文件

javascript - 关于更改隐藏输入

javascript - 我怎样才能改变这个时钟的速度