使用通配符在JS中搜索数组

时间:2014-10-08 18:37:47

标签: javascript arrays wildcard elements

我想知道是否可以创建一个元素数组,然后使用通配符创建一个事件监听器,当这些元素与这些元素进行交互时将触发该通配符。这可能是一个样本:

var e = new Array();
e[1] = document.getElementById('some-element');
e[2] = document.getElementById('some-other-element');

e.onmouseup = function() {
  if(e == e[1]) {
    //Some code here
  } else if (e == e[2]) {
    //Some code here
  } 
}

2 个答案:

答案 0 :(得分:0)

我不确定你的意思是"通配符",但简短的回答是:不,它不是。

您必须迭代数组并将处理程序绑定到每个元素。在处理程序内部,您可以使用this来引用处理程序绑定的元素。

答案 1 :(得分:0)

不是wildcard,而是允许您只为所有元素绑定一个事件处理程序 - 事件委派:

document.body.addEventListener('mouseup', function (event) {
    var target = event.target;
    if (target == e[1]) {
        //Some code here
        alert('some-element');
    } else if (target == e[2]) {
        //Some code here
        alert('some-other-element');
    }
}, false);

这是有效的,因为事件会在DOM树中冒泡,直到它到达body,并且会从中检测到必要的操作。

以下是使用此方法的演示: http://jsfiddle.net/jwoxnn3d/