2012-10-23 17 views
15

可能性の重複:
jQuery mouseover a disabled link, how do I change the cursor so it doesn’t appear clickable?防止カーソルの変更

私はその機能が不要または不可能である特定の場合には無効にしようとしてるのボタンを持っています。これはページの多くのボタンの1つで、この特定のボタンを無効にしたいだけです。

私が探している効果は、マウスポインタが灰色表示され、解除不可能になり、ボタン上にマウスポインタを置くとマウスポインタが手ポインタに変わらないようにすることです。

私は最初の2つの目標には成功しましたが、3番目の目標を達成する方法は不明です。私が検索したときに、この動作をグローバルに無効にするための提案がありましたが、特定のボタンでは表示されませんでした。

これまで私がこれまで持っていたことは次のとおりです。

if(buttonIsDisabled) 
{ 
    var btnid ="#button"+index; 
    $(btnid).attr("disabled","disabled").fadeTo(500,0.2); 
} 

は、これが成功したボタンはunclickableになり、それをフェードアウトが、FirefoxとChromeでそれはまだホバリング手のアイコンが表示されます。 IE8(私もサポートしなければならない)は、手を正しく無効にし、カーソルを表示します。

ChromeとFirefoxでIEの動作を強制する方法に関する提案はありますか?

+1

あなたが試してみましたそれをCSSでスタイリングする'cursor:default'? – j08691

+0

@ j08691私はこれを時々動的に行うだけですが、jQueryの.cssソリューションは明らかに意味があります。 –

+0

@Diodeus良い点、私はいくつかの検索をしましたが、ボタンの特定のものを検索していたし、 "無効なリンク"の投稿を見ていませんでした。 –

答えて

25

「カーソル」ルールを「デフォルト」の値に設定できます。 jQueryでは、cssメソッドを使用できます。

$(btnid).css("cursor", "default"); 

あなたは既に$(btnid)を使用しているので、あなただけのようなので、呼び出しをチェーンすることができます

$(btnid).attr("disabled","disabled").css("cursor", "default").fadeTo(500,0.2); 
+0

まさに私が欲しかったこと、ありがとう! –

+0

このようなものもありますか.css( "cursor"、 "pointer!important"); ? !importantを使って何かを上書きする? –

+0

@ KalaJ - はい、うまくいくはずですが、オーバーライドをオーバーライドしようとしている場合は、それを行うべき唯一の理由があります。 jQueryのcss関数は、一致したdom要素のstyleプロパティのフィールドを設定します。これは、デフォルトで最も高い特異性を持つはずですので、より重要性の低い特異性マッチルールも!importantを使用していない限り、!importantは必要ありません。そのすべてが厄介であると思われる場合は、大切なのは大切なことです! http://css-tricks.com/specifics-on-css-specificity/およびhttp://css-tricks.com/when-using-important-is-the-right-choice/を参照してください。 –

4

cursor: defaultのスタイルをボタンに設定することもできます。

4

あなたはこのようにCSSを設定することができます。

$(btnid) 
    .attr("disabled","disabled") 
    .css('cursor','default') 
    .fadeTo(500,0.2); 
関連する問題