【发布时间】:2012-03-03 12:18:35
【问题描述】:
有人可以提供 jQuery/javascript 中事件冒泡和事件捕获的实用日常示例吗?我看到了各种示例来展示这些概念,但它们似乎总是你在常规网络应用程序中永远不需要的东西。
非常感谢描述和代码 sn-ps。
【问题讨论】:
标签: jquery event-handling event-bubbling event-capturing
有人可以提供 jQuery/javascript 中事件冒泡和事件捕获的实用日常示例吗?我看到了各种示例来展示这些概念,但它们似乎总是你在常规网络应用程序中永远不需要的东西。
非常感谢描述和代码 sn-ps。
【问题讨论】:
标签: jquery event-handling event-bubbling event-capturing
实际事件冒泡?
使用或不使用 jQuery(请记住,您可以在不使用库的情况下处理冒泡事件)在许多情况下,您希望构建代码以利用冒泡。
举个例子:假设您有一个页面,其中的元素是动态创建的,但您想处理对这些元素的点击。您不能在它们存在之前将事件处理程序直接绑定到它们,但是在创建它们时将单个处理程序绑定到它们有点痛苦。相反,将事件处理程序绑定到容器对象:单击事件将从单个元素冒泡到容器,但您仍然可以判断单击了哪个元素 - 如果您使用 .on() 的适当语法,jQuery 可以轻松完成此操作,或者.delegate()(或者甚至 .live(),如果你有一个非常旧版本的 jQuery),因为它将 this 设置为单击的元素。
<div id="someContainer"></div>
$("#someContainer").on("click", ".dynamicElement", function() {
// this is the element, do something with it
});
这表示单击“someContainer”div 的子级“dynamicElement”类的元素时会执行某些操作。无论“dynamicElement”元素在页面加载时是否存在、后来添加以响应某些其他用户操作,或者是否使用 Ajax 加载,它都会起作用。
【讨论】:
我将图像动态添加到 div,我计划使用事件冒泡来捕获包含 div 中的 onload 事件。
【讨论】:
onload 是要知道图像何时真正呈现在屏幕上?可以给个代码sn-p吗?