2013-07-16 16 views
12

私は、単純な警告ボックスを表示するスクリプトを呼び出すリンクをクリックするといくつかの指示を出したいと思う。私はこのようでしたら..."#"を付けずにonclickでリロードするのを防ぐには?

<label for="arquivo">Máximo de 1MB, observe os <a href="" onclick="ajudaUpload();">tipos permitidos</a>.</label> 

ページでも偽リターンで再ロードされ、かつ「#」記号を持つ私は、このようにやった場合...

<label for="arquivo">Máximo de 1MB, observe os <a href="#" onclick="ajudaUpload();">tipos permitidos</a>.</label> 

、ページ上にスクロールされ、 "#"がクエリ文字列に追加されます。再ロード、スクロール、ゴミを使わずにそれを行う方法が3つありますか?

+3

href – Prisoner

+1

@Prisonerを削除するキーボード操作やデフォルトのリンクスタイルなどのユーザビリティのために必要です – Izkata

+0

最初に 'onclick'属性を使用しないでください。 –

答えて

24

戻る偽の呼び出し後:

<a href="" onclick="ajudaUpload();return false;">tipos permitidos</a> 

またはあなたの関数がfalseを返した場合、あなたは関数の結果を返すことができます。

<a href="" onclick="return ajudaUpload();">tipos permitidos</a> 

それはちょうど関数内でfalseを返すために十分ではありませんクリックハンドラから実際にfalseを返す必要があります。

+0

私はSafariでテストを行い、最初の行のように機能します。また、関数内でfalseを返す必要はありません。ブラウザは、戻り値を無視し、onclickの内部だけを使用します。 – Gustavo

+0

編集:2番目の行でもう一度テストしましたが、それも機能します。コールの前に戻り値を忘れるだけです... – Gustavo

+0

はい、onclickイベントが最終的にfalseを返すことは重要です。関数だけがfalseを返した場合、式は評価され、clickイベントは何も返しません。 – MrCode

3

.preventDefault()メソッドを使用するか、falseを返すか、HREFタグをすべて一緒に削除します。いずれもうまくいくはずです。

Vc nao deviar estar usando onclick dessa forma pra comecar。ええ、ええと、私はそれを拒否しています。

+0

@Christian:いいえ、標準機能ですが、IE8にはシムが必要です。 –

+0

@ebramtharwat:なぜjQueryドキュメントへのリンクを投稿していますか? –

+2

なぜ賛成投票ですか? http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-flow-cancelation –

0

ほぼすべての要素がonclickイベントをサポートしているため、bタグまたはボタンタグ、つまりスパンタグを使用できます。そうすれば、リンク(タグ)のように見えるようにスタイルを設定することができます。例:

<label for="arquivo">Máximo de 1MB, observe os <b onclick="ajudaUpload();">tipos permitidos</b>.</label> 
-1

あなたのherfを削除し、あなたのタグのIDを指定します。その後、IDを使用してアラートを表示することができます。 ( '#id')。click(function(){alert(message); falseを返す; });その後、

3
<a href="" onclick="return ajudaUpload()">tipos permitidos</a> 

とあなたの関数でfalseを返す: '?' だけ追加され、これを行うに

function ajudaUpload() 
{ 
    ... 
    return false; 
} 
+0

なぜ関数呼び出しの 'return'値を扱うのにも気にしませんか?関数呼び出しの後にちょうど 'return false;'を実行すると、同じことが起こります。 – Ian

+0

この場合も同じことが実行されますが、いくつかの条件が満たされていれば真を返すこともできます。 – Samurai

+0

Safariのリストには動作しません。リロードされます。 – Gustavo

2

非常に単純な方法(疑問符):)

F.e.

を使用でき
<a href="#?">Moiz Travadi</a> 
3

<a href = "javascript:void(0);" onclick="ajudaUpload();"> 

でも私は同様の問題に貼り付けました。私はonclick関数を使いたがっていましたが、ページがリロードされてしまいました。私は望みませんでした。私はhref = "javascript:void(0);"を試しました。それは働いた。

+0

面白い!確かに、定期的に参照としてjavascriptを使用しているかどうかわかりませんが、何らかの理由でクラッシュした場合にonclickがブール値を返さない可能性があります。この場合、リロードが実行されます。このハックは、リロードを実行することを妨げる可能性があります。試してみる価値があります。 – Gustavo

+0

受け入れられた答えは動作しませんでした4私はまだリロードするでしょう、この1つは、なぜか不思議です。 –

関連する問題