2012-02-16 13 views
4

私は通常、JavaScript関数をアンカークリックイベントにバインドする必要があります。これは、jqueryやonclickのインライン属性を使用すると簡単です。JavaScriptアンカータグの正しいhref値は何ですか?

しかし、私の問題は、hrefを空にする最良の方法が、であることを決して知らないことです。例えば

  1. <a href="javascript:void(0)"> - 私は がfalseを返す必要があり、私は別のページに移動したくない場合 - それはちょうど
  2. <a href=#>空であるために少しあまりにも多くのコードのように思えますJavaScript呼び出し
  3. <a href> - このオプションは、 カーソルとホバースタイルを壊し、ブラウザがリンク
  4. <a>としてレンダリングされません - idem

空のアンカーの値はどれくらいですか?href JavaScriptなしで機能を維持することには興味がありません。

+0

JavaScriptリンクの[Href]の可能な複製: "#"または "javascript:void(0)"?](http://stackoverflow.com/questions/134845/href-for-javascript-links-or-javascriptvoid0 ) – JJJ

+0

私の票は4 –

+0

です。参照:http://stackoverflow.com/questions/4842953/or-javascriptvoid0 –

答えて

3

右の1が空a要素href属性を使用して、JavaScriptでクリックイベントをバインドすることです。

控えめなデザインでは、適切なリンクを持つhref属性を持つ必要があります(Javascriptを使用しない場合でもサイトを使用できます).Javascriptの属性を削除してclickイベントをバインドします。

a要素をターゲットとしてクリックイベントをバインドするだけの場合は、代わりにdivまたはspanを使用することを検討してください。

+0

クリックするとナビゲーションが行われます(例:ajax)。それは必ずしもそうではありません。 –

+0

関数に応じて、 'button 'の使用がさらに適切かもしれません。 –

+0

ボタンはしばしばブラウザやOSに依存していて、ほとんどスタイル指定ができないので、これは本当に便利です。 –

1

単にA要素を使用しないでください。 DIVをクリックできるようにすることも、他の要素をクリックすることもできます。

また、href属性をそのまま残すこともできます。あなたはまた、リンクのようにそれを見たい場合は

<a onclick="myFunction();">dasd</a> 

、CSSでこれを置く:

a { 
    text-decoration: underline; 
    color: blue;  
}​ 
+2

'href'を省略すると、リンクとしてレンダリングされません。 –

+0

それはどういう意味ですか、それは真実ではありません。要素はまだすべてのCSS規則に従います。 –

+0

それは私の言いたいことです:http://jsfiddle.net/vtf27/ –

0

私は

<a href="javascript:;"></a> 

または

<a href="javascript:void;"></a> 

が空のアンカーを示すための最良の方法だと思います。

<a href="#someId"></a> 

私は個人的にしっかりしてるのid = "someId"

1

を持つDOM要素にページを移動します置き換える、機能はない拡張にJavaScriptを使用して信じています。そのことから、アンカーは、私が実際にjavascriptで実行しているアクションの「安全な」フォールバックを指しています。ジャバスクリプトが正常にロードし、要素に結合することができた場合には、サプリメント(およびfalseを返す)すると

<a href="https://stackoverflow.com/users/create" class="user-create"></a> 

を、彼らはJavaScriptを持っていない場合、そうでない場合は、まだ(ユーザーにタスクを達成する能力を提供します。簡単に言えばプラグインを介してブロックされているか、ロードされていない)。

+0

これは、クリックがナビゲーション(例:ajax)を行う場合です。それは必ずしもそうではありません。 –

+0

@RokKralj:UIの遷移を除いて私は同意しません。あなたが行うことができる他のどのようなクリックも、ページの遷移では完全に受け入れられます(かなり、確かではありませんが可能です)。 - フォローアップ:あなたがここで行うことができるすべての行動を考えてください:コメント、投票、フラグ付けなど。すべては、別のページへのフォローアップで行うことができます。それは(今日の基準で)醜いだろうが実現可能(彼らは90年代にどのようにしたのだろうか?)例外は "コメントを追加"と同様にコンテンツを表示/非表示にするが、javascriptを使わないと、常時。 –

0

すべてが異なります。アンカーをクリックしてページ上のパネルを開く場合は、javascriptでアンカーを挿入した場合にのみ、オプション2を使用してうれしく思います。

これはjavascriptを無効にすると、アンカーが表示されず、パネルが表示されるはずです。

リンクがどこかにある場合、brad christyやodidのような実際のリンクアドレスが必要です。

0

<a href=#>ABC</a>

=>ドキュメントのちらつきやリセットスクロール位置になり、それがアドレスバーのURLが設定されます上記のリンクをクリックするだけで

上記の問題を回避するために、 <a href=# onclick="return false" >abc</a> を使用することができ、バインドイベント通常は のようにjQueryを使用するか、false値を返すonclickの関数を実行できます。

関連する問題