我有一个关于页面的全屏覆盖,当被调用时,它位于站点的内容之上。我希望用户能够单击任意位置以关闭覆盖。但是,这与 about 文本中的超链接相冲突。因此,如果我单击叠加层中的超链接,它将关闭叠加层,然后转到超链接。如何将超链接与非超链接分开?
这是一个演示问题的jsfiddle。http://jsfiddle.net/USzAb/
我有一个关于页面的全屏覆盖,当被调用时,它位于站点的内容之上。我希望用户能够单击任意位置以关闭覆盖。但是,这与 about 文本中的超链接相冲突。因此,如果我单击叠加层中的超链接,它将关闭叠加层,然后转到超链接。如何将超链接与非超链接分开?
这是一个演示问题的jsfiddle。http://jsfiddle.net/USzAb/
只需添加它即可停止 #ablock 内所有超链接上的点击事件传播
$("#ablock a").click(function(event) { event.stopPropagation(); });
您应该添加一些代码,例如...
$('#ablock').click(function(event) {
event.stopPropagation();
});
您遇到的问题是click
事件正在通过祖先元素冒泡,直到它也触发#ablock
'click
事件。
出现此问题的原因是单击超链接会冒泡到叠加层。你需要用类似的东西来阻止这种冒泡
$('a', '#ablock').click(function(e){e.stopPropagation()})
这仍将允许链接单击起作用并停止覆盖单击处理程序正在处理的事件。
我已经通过将它添加到你在 jsfiddle 上的演示来测试它