0

return false;有没有一种方法可以设置链接集合,而不是多次编写,这样如果点击其中任何一个,点击功能会return false;?我仍然希望拥有大多数链接return true,以便显示将return truereturn false将特别感谢的代码。

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

4

1 回答 1

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>
    
  • 链接也可以通过按键事件触发。
于 2012-05-06T12:37:54.843 回答