2012-12-28 10 views
24

<a>の代わりに<span>を使用する必要があります。なぜなら、私は主にajaxを使用しているため、リンクの代わりに私のスパムの属性としてonclick ajaxイベントがあるからです。JavaScriptを使用せずにリンクのように見えるようにスタイルを設定するにはどうすればよいですか?

その結果、スパンを手動でリンクのようにスタイルする必要がありました。私はホバリングを使用し、背景とテキストの色を変更するために擬似クラスを訪問しましたが、マウスのデフォルトをマウスポインタの指先に変更するには、javascriptを使用する必要がありますか?または、私はCSSを使ってそれを行うことができますか?

また、私はちょうどタグを<span>の代わりに使用することができませんでしたが、hrefの代わりにonclickを含めることができましたか?それはまったく同じではありませんか?

+1

スパイダーがhrefなしでもう何をクロールするのかわからないので、アンカーをすべて省略して、代わりに「スパン」を使用すると、検索エンジンにペナルティが生じます。 – easwee

答えて

2

span cssにcursor:pointer;を追加するだけです。

0

使用CSSは、ポインタとしてカーソルを表示します

<span style="cursor: pointer;">Pseudolink</span> 

http://jsfiddle.net/kkepg/

1

あなたがアンカーを使用することができます。しかし、javascriptの中ではevent.preventDefault()を使う必要があります。しかし、CSSの方が小さくて簡単です。あなたのスパンを保ち、これを使用します。またあなたは(あなたが最初に使用されていないものだけ任意のスタイルを使用することができます)推移する際の要素のスタイルを設定する:hover疑似クラスを使用することができます

span:hover{ 
    cursor:pointer; 
} 
+0

あなたは必要ありません:ホバー... –

+0

@StefanNeubert彼はまた、特定のプロパティを 'hover'の要素に追加したいだけでなく、カーソルを変更したいのですが? – sourRaspberri

+1

もちろんそれが必要です。しかし、常にコードを明示し、不要な疑似属性を省略する必要があります。 –

53
span { 
    cursor:pointer; 
    color:blue; 
    text-decoration:underline; 
} 

を。 Ex。

span:hover { 
    text-decoration:none; 
    text-shadow: 1px 1px 1px #555; 
} 

Example

0

あなたはcursor: pointer CSSルールを指定することにより、ポインタにカーソルを変更することができます。

<span>の代わりに<a>タグを使用することもできます。実際、スクリーンリーダーやその他の同様のデバイスでは、よりうまく動作します。 onClickハンドラでpreventDefault()およびstopPropagation() JavaScript関数を使用する場合は、href属性を省略する必要はありません。これにより、非JS対応ブラウザとの下位互換性をある程度保つことができます。次のように

1

オプション1

ちょうどanchorリンクを使用します。

<a href="#" onclick="someFunction();"> Link </a> 

オプション2

あなたが使用スパンをしたいだろう、なぜ私は知らないが、あなたが行う場合は、次のことを行うことができますスタイルを使用して、アンカーリンクと似たようにします。

span { 
    color: #000000; /* Change this with links color*/ 
    cursor: pointer; 
    text-decoration: underline; 
} 

span:hover { 
    color: #444444; /* Change the value to with anchors hover color*/ 
} 
+1

あなたがシングルページアプリケーションを持っているならば、あなたがしようとしていないときにURLを変更することは常に良い考えではありません – pilavdzice

7

あなたのウェブサイトが公開されていると、あなたのサイトをクロールし、検索エンジンを頼りにしている場合はスパイダーがあなたのページをクロール中につかむことは何もないので、あなたがhrefせずにリンクを残すことによって多くを失うことに注意してください。あなたがpreventDefault()を使用してjQueryを使ってリンクを無効にすることができるよりも

<a href="http://www.example.com">Link</a> 

- あなたは完全に分離:ユーザーがまだページ間を移動することができ、あなたのjavascriptが故障した場合 -

あなたは完全なリンクを使用する必要がありますベースのHTMLとjavascriptの部分は、あなたのサイトがまだjavascriptを使わずに使えることを意味します。

あなたはスパンホバー、何を気にする必要はありませ行うよりも - しかし、ちょうどそれのために

span:hover { 
cursor:pointer; 
} 

ホバースパン上のホバーハンドカーソルを有効にします。

+0

preventDefault()は異なるブラウザでは信頼できないエフェクトを持つ可能性があることに注意してください。 IEが特定の出来事を防ぐことさえできるようになったのは、最近の変化だけでした。ブラウザはますます標準化されつつありますが、デフォルトのブラウザ動作を上書きすることは慎重に行われるべきであり、大量のクロスブラウザテストが必要です。 – lvoelk

+0

@IvoelkはpreventDefault()が機能しないときに正確なサンプルを表示します。また、あなたは4歳の答えに返信しています。 – easwee

+2

':hover'は冗長で、' cursor'は「この要素を指すときマウスカーソルを変更する」を意味し、 ':hover'は「この要素を指すとき」を意味するので、「ポインティング時にマウスカーソルを変更するこの要素と、この要素を指しているときに "と表示されます。 – Quentin

-2

あなたはonClickイベントを使用できますが、正しく覚えていれば、あなたのページが飛び跳ねるのを防ぐためにfalseを返す必要があります。何かのように:myfunctionはfalseを返すことを提供<a href="#" onClick="return myfunction();">

<a href="#" onClick="myfunction();return false;"> 

か。

ます。また、直接のhrefからJavaScriptを呼び出すことはできますが、有効なリンクとして結果に従うことをしようとするブラウザにブロックするために無効にするために結果をキャストする必要があります。

<a href="javascript:void(myFunction())"> 

でも、あなたはまだ場合onClickプロパティを使用します。 href="#"href="javascript:void(0)" ...>に置き換えることは、まだ良い考えです。

event.preventDefault()stopPropagation()を使用して他の人が言及しています。私はこれらのうちの1つを使用したことを覚えていませんが、HTMLリンクでJavaScriptをコーディングしてから何年も前になっていることを認めなければなりません。これらの2つの機能の使用を確実に調査する必要があります。

編集:多分href="javascript:void(0)"を使用していると悪い考えかもしれません。 http://drupal.org/node/1193068を参照してください。

関連する問題