Javascript动态事件处理,而不是Jquery

use*_*624 2 javascript jquery dynamic event-handling

这是我的代码

<html>
    <head>
    <script type="text/javascript">
    window.onload = function(){
        sel = document.getElementsByTagName('select');
        for(i=0;i<sel.length;i++)sel[i].onclick = function(){alert('');}
    }
    </script>
    </head>
    <body>
    <div id="ss"></div>
    <select></select>
    <input type="button" onclick="document.getElementById('ss').appendChild(document.createElement('select'))"/>

    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

用于静态标签的"onclick"事件"选择"但不适用于动态创建的"选择".换句话说,我想知道在Javascript中JQuery的.live的替代品.

Dav*_*mas 6

将事件绑定到DOM中已存在的父元素:

document.body.addEventListener('click', function (e) {
  if (e.target.tagName.toLowerCase() == 'select') {
    alert('You clicked a select!');
  }
});
Run Code Online (Sandbox Code Playgroud)

JS小提琴演示.

将点击绑定到"更接近"的元素会更加明智form,如果你使用getElementById()而不是getElementByTagName()更简单,因为你不必担心你绑定的数字的索引.