2012-04-14 17 views
3

前述のように、私はコンテンツを表示し、ハッシュタグに基づいてボタンをハイライトするシステムを持っています。これはほとんどの場合問題なく動作しますが、ボタンをホバーすると、アクティブな状態が失われます。jQuery UIボタン - アクティブな状態を維持し、ホバー状態を無視する

ここでは、[作業例] [1]です。

私は.hover(function() {return false;});を試しましたが、残念ながらこれはうまくいきませんでした(しかし、私はそれを期待しませんでした...!)。私はまた、Firefoxで完璧だったボタンを無効にしてみましたが(別のボタンをクリックすると再び有効になりました)、IE7ではテキストがグレー表示されていました。

が大幅に#を提出しているあなたに感謝:)

+1

あなただけの 'のhttpにリンク:// localhost'。それはいくつかのフォーラムでは '[img] file:/// C:/Users/..../me.jpg [/ img]'と同様に賢明です。p – ThiefMaster

+1

localhostをあなたのIPアドレスに置き換えるか、httpにデモを投稿してください://jsfiddle.net –

+0

ああ私は、私はそれをしたと信じられない!リンクを更新しました。それは人を指摘するためのものです:-) – Nick

答えて

4

をあなたのボタンで起動するには、任意のヘルプや提案をお願い申し上げ、それはリンクが別のページに行くことはありませんが、それは、いくつかの不要なスクロールを発生させます。あなたはこれを避けるべきです。

$('#showScarringReports').click(function(ev){ ev.preventDefault(); }); 

アクティブ状態を維持したい場合は、アクティブ状態から元の状態に切り替えるイベントハンドラを無効にすることができます。もう一度、最初の例を参考にしてください。

$('#showScarringReports').unbind('mouseout keyup mouseup hover'); 

アクティブになったら、アクティブ状態を解除してボタンからui-state-hoverクラスを削除します。

+0

うわー、これは完璧です - ありがとうございました!問題を解決しただけでなく、別の問題も解決しました。本当に感謝しています。 – Nick

0

他のソリューションが私のために動作しませんでしたので、私はこの1つを使用する必要がありました:

$('#my-button') 
    .button({disabled:true}) 
    .removeClass('ui-state-disabled') 
    .addClass('ui-state-active') //permanently pressed 
    .addClass('ui-state-hover') //or permanently highlighted 
;