如果单击了div或单击了任何a标记,则使用Javascript

如果单击了div或单击了任何a标记,则使用Javascript,javascript,Javascript,我目前正在使用下面的命令来检测是否单击了id为bar的元素。我想更改它,以便无论单击了bar还是任何a标记,此函数都将运行,而不复制此函数 document.getElementById("bar").onclick = function() { //do things... }; 只需单独定义函数并为其命名: function MyFunction() { // Your function here } document.getElementById("bar").oncl

我目前正在使用下面的命令来检测是否单击了id为
bar
的元素。我想更改它,以便无论单击了
bar
还是任何
a
标记,此函数都将运行,而不复制此函数

document.getElementById("bar").onclick = function() {
    //do things...
};

只需单独定义函数并为其命名:

function MyFunction() {
    // Your function here
}

document.getElementById("bar").onclick = MyFunction;

var links = document.getElementsByTagName("a");
for (var i=0; i < links.length; i++) {
    links[i].onclick = MyFunction;
}
函数MyFunction(){
//你在这里的职能
}
document.getElementById(“bar”).onclick=MyFunction;
var links=document.getElementsByTagName(“a”);
对于(变量i=0;i
只需单独定义函数并为其命名:

function MyFunction() {
    // Your function here
}

document.getElementById("bar").onclick = MyFunction;

var links = document.getElementsByTagName("a");
for (var i=0; i < links.length; i++) {
    links[i].onclick = MyFunction;
}
函数MyFunction(){
//你在这里的职能
}
document.getElementById(“bar”).onclick=MyFunction;
var links=document.getElementsByTagName(“a”);
对于(变量i=0;i
根据您可以针对的浏览器,您可以使用

var nodes = document.querySelectorAll("#bar, a");
for (var i=0, ii=nodes.length; i < ii; i++) {
    nodes[i].addEventListener('click', function multiElementClickHandler(event){ alert("clicked " + event.target); });
}
var nodes=document.querySelectorAll(“#bar,a”);
对于(变量i=0,ii=nodes.length;i

否则,请像@mayabelle所说的那样单独定义它。:)

根据您可以针对的浏览器,您可以使用

var nodes = document.querySelectorAll("#bar, a");
for (var i=0, ii=nodes.length; i < ii; i++) {
    nodes[i].addEventListener('click', function multiElementClickHandler(event){ alert("clicked " + event.target); });
}
var nodes=document.querySelectorAll(“#bar,a”);
对于(变量i=0,ii=nodes.length;i

否则,请像@mayabelle所说的那样单独定义它。:)

document.getElementsByTagName(“a”)
返回代码中使用的
a
标记的列表。所以你必须迭代它。我在完成之前不小心点击了提交。这篇文章已经编辑过了。谢谢感谢您的假设,但事实并非如此。
document.getElementsByTagName(“a”)
返回代码中使用的
a
标记列表。所以你必须迭代它。我在完成之前不小心点击了提交。这篇文章已经编辑过了。谢谢感谢您的假设,但事实并非如此。如果您打算建议
.addEventListener
(这当然比
.onclick
)更好,那么值得一提的是
.attachEvent
对于浏览器兼容性的可能需求+不管怎样,我想你是对的。我原以为querySelectorAll是IE 9及更高版本,但看起来IE 8中会支持这个特定的查询,而且那里也需要attachEvent。如果你想建议
。addEventListener
(当然比
。onclick
更好)值得一提的是,
.attachEvent
可能需要与浏览器兼容+不管怎样,我想你是对的。我原以为querySelectorAll是IE9及更高版本的,但看起来IE8中会支持这个特定的查询,而且那里也需要attachEvent。