我想将onclick或mouseover等事件添加到动态创建的元素(类似于jQuery中的.live函数)...如何使用纯javascript而不使用jQuery等框架?这是一个简单的jsFiddle http://jsfiddle.net/3tBpv/1/
我希望能够从新创建的divs类而不是id中执行此操作。
非常感谢任何帮助
答案 0 :(得分:24)
在文档对象上创建一个处理程序。检查目标元素的类和节点名称(标记)。如果匹配,则继续进行任何需要完成的操作,否则忽略点击。
document.onclick = function(event) {
var el = event.target;
if (el.className == "new" && el.nodeName == "DIV") {
alert("div.new clicked");
}
};
这是fiddle。
答案 1 :(得分:3)
@Anurag's answer是正确的但不完整,在大多数情况下会导致很多集成错误。
这是正确的版本:
document.addEventListener("click", function(event)
{
// retrieve an event if it was called manually
event = event || window.event;
// retrieve the related element
var el = event.target || event.srcElement;
// for all A tags do the following
if (el instanceof HTMLAnchorElement )
{
//required to make the "return false" to affect
event.preventDefault();
window.location.href = "/click.php?href="+encodeURIComponent(el.href);
//prevent user's click action
return false;
}
}, true);
这是一个基本的点击跟踪功能,会影响页面上的所有链接,以跟踪/记录所有链接点击。