我试图检测用户何时触摸了网页中的链接,何时触摸了页面的任何其他部分,但它不起作用-,在下面的代码中,无论我在哪里触摸,都会弹出警报“触摸了非链接”,而不管它是否是链接。
这个代码有什么问题?
function addListeners()
{
alert('adding listeners');
// Attach the listener for touches on non-links to the document node
document.addEventListener("touchstart", touchesOnNonLinksListerner, false);
// Attach the listener for touches on links to the anchor nodes
var links = document.getElementsByTagName("a");
for (var index = 0; index < links.length; ++index)
{
links[index].addEventListener("touchstart", touchesOnNonLinksListerner, false);
}
};
function touchesOnNonLinksListerner(event)
// Catches touches anywhere in the document
{
alert("touched a non link");
}
function touchesOnLinksListener(event)
// Listens for touches which occur on links, then prevents those touch events from bubbling up to trigger the touchesOnNonLinksListerner
{
alert("touched a link");
if (typeof event == "undefined")
{
event = window.event;
}
event.stopPropegation();
}
1条答案
按热度按时间kd3sttzy1#
您还将touchesOnNonLinksListener附加到链接。请改为附加touchesOnLinksListener!