的简单版本是有可能得到的任何地方具有相似的功能jQuery的live()
事件处理纯javascript函数?我需要能够将事件附加到尚未创建的对象上,但jquery-livequery以及jquery-events源由于依赖于jQuery核心而无用。jQuery的直播功能
回答
活动委派很简单。就拿这个例子:
标记:
<div id="container">
<p>Test</p>
<p>Test</p>
<p>Test</p>
</div>
<button id="add">Add new paragraph</button>
脚本:
document.getElementById("container").onclick = function(e) {
// e.target is the target of the event or "source element"
alert(e.target.innerHTML);
};
// dynamically adds new paragraph on button click
document.getElementById("add").onclick = function() {
var p = document.createElement("p");
p.innerHTML = "a new paragraph";
document.getElementById("container").appendChild(p);
};
由于事件处理程序连接到母体,它会为插入任何未来元素的工作。
有用的参考:
jQuery是纯JavaScript和开放源代码,所以只要看看我们的代码,然后复制你需要什么并适应它。
+1更不用说它已经通过了浏览器测试。我永远不会明白,为什么人们觉得需要“重新发明轮子”,而没有更大的目的。 – Sparky
我认为它很好奇;)但另一方面,单独处理IE的可能性会让我感到恶心;) –
不像jQuery看起来像常规的DOM操作。它建立在它自己的迷你平台上的很多层中,因此弄清楚在相对简单的jQuery操作中实际进行的DOM调用可能非常令人生畏。我并不是说这对jQuery不利,只是你的建议不像使用jQuery那样容易。在发现实际调用DOM之前,您必须深入了解它,然后,您发现不容易复制或移出jQuery,因为它使用了很多自己的平台。 @ karim79的答案更有帮助。 – jfriend00
是的,这就是所谓的事件代表团,并已经有超过jQuery和“活”。
“活”的工作原理是监听在阀体上或文档事件,那么当事件发生时着眼于event.target,看看它的选择相匹配的存储在缓存中的一个。这是相当低效的,但对一些工程确定。
一个更有效的方法是在添加要监听元素的数组,然后侦听要委派事件元素的最低共同祖先冒泡事件。 body元素是后备,但效率最低。当侦听器得到一个正在等待的事件时,检查event.target是否是数组中的一个元素,如果是,请使用这个调用相关函数。
用户也可以直接在元素的ID存储为一个对象的属性,以便查找它的速度更快,如果你有很多的元素,或者您可以注册基于类的事件。
有一些限制和弱点(某些浏览器中的某些事件冒泡,但不是其他浏览器,有些则完全不冒泡),并且效率非常低,请小心使用。
我知道一点jQuery和你的功能。 您正在寻找如何在JavaScript中使用事件? 你可以这样:
element.addEventListener('onclick',
function() {
//do something
});
或
element.onclick =
function() {
//do something
});
的element
变种是DOM文档的参考。 查询https://developer.mozilla.org/en/DOM了解更多详情。
- 1. Ajax功能,直播电话?
- 2. jQuery的直播功能不能正常工作
- 3. jQuery的AJAX播放功能
- 4. 绑定和未绑定的jQuery直播功能
- 5. 添加直播功能,动态添加元素的jQuery
- 6. JQuery垂直对齐功能
- 7. Jquery基于WYSIWYG的直播可能性
- 8. html5视频jquery功能不能播放
- 9. 搬出jquery直播
- 10. 直播点击jQuery的
- 11. jQuery点击事件与Firefox中的直播功能有所不同
- 12. 垂直菜单功能与jQuery
- 13. PHP的日期功能的直播服务器
- 14. jQuery的播放和停止的jQuery功能
- 15. 哪个OpenCV的功能支持模拟摄像机直播?
- 16. jQuery直播垂直新闻股票...
- 17. jQuery绑定直播活动
- 18. jquery AJAX直播输出?
- 19. 直接从功能
- 20. 的setInterval重播功能
- 21. 的Jquery/JS:调用jQuery的功能的功能外jQuery的功能
- 22. jQuery的功能
- 23. jQuery的功能
- 24. Php使用Fopen功能与直播流(rtp)
- 25. 简单的jquery直播(点击)不能正常工作
- 26. jquery自动播放功能只能工作一次
- 27. 直播播放
- 28. jQuery的直播获取股利文字
- 29. 在jQuery 1.7+中的直播活动
- 30. jQuery的排序直播()不排序
是的,是否有可能。Jquery是用JavaScript语言创建的一个库。 所有功能都可以自行改写 –
为什么要重新发明这个轮子?这个函数依赖于jQuery有什么问题? – Sparky
你用什么方法向页面添加新元素?为什么你不能在添加元素的相同代码中连接事件? – ErikE