0

私はウェブサイト自体にとどまるアプリを開発しています、そして私はすべてのリンクが関数を呼び出すことを望みます。私はこれを試しました:

HTML

<a href="index.php">link</a><br>
<a href="news.php">link 2</a>

Javascript

var a = document.getElementsByTagName("a");
for (var i = 0; i < a.length; i++) {
  a[i].onclick = function () {
    return false
  }
}

なにが問題ですか?動作しません。

4

4 に答える 4

3

jQueryではないので、このpreventDefault関数を使用する必要があります。

var a = document.getElementsByTagName("a");
    for (var i = 0; i < a.length; i++) {
       a[i].onclick = function (e) {
       e.preventDefault();

       doSomething();
    }
}
于 2013-03-14T17:34:03.383 に答える
1

純粋なJavaScriptソリューションの編集

document.addEventListener("click", function(e){
    if (e.nodeName==="A"){
        e.preventDefault();
        return false;
    }
}, false);

これにより、ドキュメントに1つのイベントのみが追加され、アンカー要素のみのすべてのクリックが防止されます。

これはjqueryの質問ではなかったというコメントのため、古いソリューションを削除しました

于 2013-03-14T17:35:12.433 に答える
0

使用しないでくださいreturn false、それはあなたが本当に必要とする以上のことをします。代わりに試してくださいevent.preventDefault()

于 2013-03-14T17:35:06.023 に答える
0
var a = document.getElementsByTagName("a").forEach(function (e) {
       e.onclick = function (a) {
           doSomething(a);
           return false;
       }
    }
}
于 2013-03-14T17:38:20.197 に答える