全屏叠加点击任意位置以关闭叠加内的文本链接的冲突

时间:2012-04-05 11:08:33

标签: jquery event-handling click

我有一个关于页面的全屏覆盖图,它在调用时位于网站内容上。 我会欺骗用户,以便能够点击任何地方来关闭叠加层。但是,这与about文本中的超链接冲突。因此,如果我点击叠加层中的超链接,它将关闭叠加层,然后转到超链接。 如何将超链接与非超链接分开?

这是一个演示该问题的jsfiddle。 http://jsfiddle.net/USzAb/

3 个答案:

答案 0 :(得分:1)

只需添加此项即可停止#ablock

内所有超链接上的点击事件传播
$("#ablock a").click(function(event) { event.stopPropagation(); });

答案 1 :(得分:0)

您应该添加一些代码,例如......

$('#ablock').click(function(event) {
    event.stopPropagation();
});

jsFiddle

您遇到的问题是click事件正在通过祖先元素冒泡,直到它触发#ablock的{​​{1}}事件为止。

答案 2 :(得分:0)

出现此问题是因为超链接上的单击会冒泡到叠加层。你需要用

之类的东西来阻止这种冒泡
$('a', '#ablock').click(function(e){e.stopPropagation()})

这仍然允许链接点击功能并停止由覆盖点击处理程序处理的事件。

我已经通过将其添加到jsfiddle

上的演示中进行了测试