0

何度も書く代わりにreturn false;、リンクのコレクションを設定して、それらのいずれかがクリックされた場合にクリック機能が実行されるようにする方法はありますreturn false;か?私はまだほとんどのリンクを持ちたいので、対になるreturn trueコードを表示することは特にありがたいです。return truereturn false

目標は、より少ないコードを書くことです。また、理解できない理由でこれが悪い考えかどうかも知りたいです。

4

1 に答える 1

2

最も単純な方法は、1つのイベントリスナーをドキュメントにバインドし、ターゲットをチェックすることです: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 に答える