在我的网页上,我有一个文件列表。
每个文件都在它自己的容器 div 中(div class="file")。容器内是文件的链接和说明。
我想让用户点击容器上的任何地方来下载文件。我通过向容器添加点击事件并检索子链接的 href 来做到这一点。
当文件在新窗口中打开时,如果用户实际单击链接,文件将打开两次。
所以我需要防止父容器点击事件在点击超链接时触发。这样做的最佳方法是将点击功能添加到超链接 to0 并设置event.stopPropagation?据推测,这将阻止事件冒泡到容器。
在我的网页上,我有一个文件列表。
每个文件都在它自己的容器 div 中(div class="file")。容器内是文件的链接和说明。
我想让用户点击容器上的任何地方来下载文件。我通过向容器添加点击事件并检索子链接的 href 来做到这一点。
当文件在新窗口中打开时,如果用户实际单击链接,文件将打开两次。
所以我需要防止父容器点击事件在点击超链接时触发。这样做的最佳方法是将点击功能添加到超链接 to0 并设置event.stopPropagation?据推测,这将阻止事件冒泡到容器。
在 Microsoft 模型中,您必须将事件的 cancelBubble 属性设置为 true。
window.event.cancelBubble = true;
在 W3C 模型中,您必须调用事件的 stopPropagation() 方法。
event.stopPropagation();
如果您不使用框架,这是一个跨浏览器的解决方案:
function doSomething(e) {
if (!e) e = window.event;
e.cancelBubble = true;
if (e.stopPropagation) e.stopPropagation();
}
是的,使用 stopPropagation。请参阅:防止执行父事件处理程序
谢谢您的帮助。
我正在使用 jQuery,但很高兴知道非框架解决方案。
为链接添加了以下内容:
$(".flink").click(function(e) {
e.stopPropagation();
});