104

JavaScript を実行するアンカー タグを作成し、そのタグがどこにでも移動できるようにしたいと考えhrefています。JavaScript を実行してからwindow.locationortop.locationをそのhref場所に設定する関数を呼び出してもうまくいきません。

それで、ページに id "Foo" を持つ要素があると想像してください。次のようなアンカーを作成したい:

<a href="#Foo" onclick="runMyFunction(); return false;">Do it!</a>

これをクリックすると、runMyFunction を実行してからページにジャンプします#Foo(リロードは発生しません - を使用top.locationするとページがリロードされます)。

提案?ここで役立つ場合は、jQueryを喜んで使用します...

4

4 に答える 4

146

代わりreturn trueに?

コードからの戻り値はonClick、リンク固有のクリックされたアクションが処理されるかどうかを決定するものです - 戻るfalseとは、それが処理されないことを意味しますが、戻った場合true、ブラウザは関数が戻った後にそれを処理し、適切な場所に移動しますアンカー。

于 2009-08-28T09:59:24.357 に答える
41
<a href="#Foo" onclick="return runMyFunction();">Do it!</a>

function runMyFunction() {
  //code
  return true;
}

このようにして、関数を実行し、リンクをたどり、関数が正常に実行された直後にリンクをたどります。

于 2009-08-28T10:25:40.717 に答える
7

関数の実行が成功した場合にのみリンクが場所を変更する必要がある場合は、実行しonclick="return runMyFunction();"、関数で true または false を返します。

関数を実行したいだけで、アンカータグにその仕事をさせたい場合は、return falseステートメントを削除するだけです。

補足として、インライン JS は最適な方法ではないため、おそらく代わりにイベント ハンドラーを使用する必要があります。

于 2009-08-28T10:02:03.150 に答える