只写一次“return false”来处理点击很多链接

时间:2012-05-06 12:34:47

标签: javascript refactoring return

有多种方法可以设置链接集合,以便在单击任何链接时点击功能return false;,而不是多次编写return false;?我仍然希望获得大多数链接return true,因此显示代码return truereturn false会特别受欢迎。

目标是编写更少的代码。我也想知道这是不是一个坏主意,我无法理解。

1 个答案:

答案 0 :(得分:2)

最简单的方法是将一个事件侦听器绑定到文档,并检查目标:http://jsfiddle.net/gKZ7q/

document.addEventListener('click', function(e) {
    if (e.target.nodeName.toUpperCase() === 'A') e.preventDefault();
}, false);
  • 对于具有嵌套元素的锚点,您必须添加一个额外的循环:

    var targ = e.target;
    do {
        if (targ.nodeName.toUpperCase() === 'A') {
            e.preventDefault();
            break;
        }
    } while ((targ = targ.parentNode) !== document.documentElement);
    // document.body should be fine. Using document.documentElement in case
    // that a fool places an anchor outside the <body>
    
  • 也可以通过按键事件触发链接。