我想添加一个事件,如onclick或mouseover到一个动态创建的元素(类似于jQuery中的.live函数)......我如何在没有框架的情况下使用纯JavaScript如jQuery?这里是一个简单的jsFiddle http://jsfiddle.net/3tBpv/1/在动态元素上点击事件没有jQuery
我想能够做到这一点从新创建的div类而不是一个id。
任何帮助,将不胜感激
我想添加一个事件,如onclick或mouseover到一个动态创建的元素(类似于jQuery中的.live函数)......我如何在没有框架的情况下使用纯JavaScript如jQuery?这里是一个简单的jsFiddle http://jsfiddle.net/3tBpv/1/在动态元素上点击事件没有jQuery
我想能够做到这一点从新创建的div类而不是一个id。
任何帮助,将不胜感激
创建文档对象上一个处理程序。检查目标元素的类和节点名称(标记)。如果它们匹配,继续执行任何需要的操作,否则忽略点击。
document.onclick = function(event) {
var el = event.target;
if (el.className == "new" && el.nodeName == "DIV") {
alert("div.new clicked");
}
};
这是fiddle。
@Anurag's answer是正确的,但不完整,在大多数情况下会导致大量的集成bug。
这里是正确的版本:
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);
这是一个基本的点击追踪功能会影响页面上的所有链接跟踪/记录的所有链接的点击次数。
这里的'return false'实际上并没有做任何事 - 这是一个jQuery发明,为你调用event.preventDefault。请参阅http://stackoverflow.com/a/1357151/589391。 – gsf 2014-07-28 22:01:51
jQuery的“live”方法甚至可以用这种方式进行收听,upvote! – ctcherry 2011-03-21 00:08:28
非常好,这正是我正在寻找...不知道为什么我没有想到这一点。谢谢! – Tony 2011-03-21 00:13:09
+1明显更好=) – kjy112 2011-03-21 00:13:48