2011-07-13 17 views
2

私はそうのようなボタンに変換していますアンカーのセットがあります。これらのアンカーの1つがクリックされた場合jqueryのUIボタンからホバーし、デフォルトの状態を削除

var sideMenuAnchors = $("#divLeft a"); 
sideMenuAnchors.width("120px"); 
sideMenuAnchors.button(); 

は、しかし、私はui-state-activeは別まで残るしたいとボタンがクリックされました...私は単純な解決策を見つけることができませんでした、それはありますか?

$('#anchor01').unbind('onmouseover').unbind('onmouseout'); 

と、この:私はこの試みたなかった

ui-active-stateはまだmouseout

に除去されるとどちらが

$('#anchor01').disable() 

は、私が必要と何を編集 私が実装したソリューションは、私が必要とするボタンクラスを手動で追加することでしたそのようOM jqueryの-UI、:

var sideMenuAnchors = $("#divLeft a"); 
    sideMenuAnchors.addClass("ui-state-default ui-button ui-button-text-only"); 
    sideMenuAnchors.width("120px"); 
    sideMenuAnchors.height("25px"); 
    sideMenuAnchors.removeClass('ui-corner-all'); 
    sideMenuAnchors.first().addClass('ui-corner-top'); 
    sideMenuAnchors.last().addClass('ui-corner-bottom'); 
    sideMenuAnchors.hover(function() { 
     $(this).addClass("ui-state-hover"); 
     },function() { 
     $(this).removeClass("ui-state-hover"); 
     }); 
+0

あなたが尋ねていることは明確ではありません。コードとセレクタが混在しています。 HTMLコードを入力して、ボタンがクリックされるまでどのアンカーを有効にしておくべきかを明記してください。 – Shef

+0

@Shef、クリックされたアンカーはアクティブのままでなければなりません...あなたが何を意味するかわからない:「混合コード」のすべてのjavascript。 – NimChimpsky

+0

あなたの特定のケースでは、クリックされたアンカーとクリックされたボタンのアクティブ状態を取り除くアンカーはどちらですか?意味のあるコードを提供する。 – Shef

答えて

2

あなたはjQueryのUIのボタンにハイパーリンクを変換しているので、それらの間には、グループの関係はありませんし、それらはすべて独立したと考えられています。

ラジオボタン(同じname属性)を変換すると、jQuery UIはグループ関係を維持し、目的の動作を取得します。

だから、あなたはちょうどそれを行うことができます:最初に、そしてボタンにこれらを変換、各ハイパーリンクにあるラジオボタンとそれに関連付けられたラベルを追加:

<form> 
    <div id="divLeft"> 
     <a id="link1" href="#">Foo</a> 
     <a id="link2" href="#">Bar</a> 
     <a id="link3" href="#">Quux</a> 
    </div> 
</form> 

$(document).ready(function() { 
    $("#divLeft a").each(function() { 
     var $this = $(this); 
     var text = $this.text(); 
     var radioId = $this.attr("id") + "_radio"; 
     $this.text("").append(
      $("<input type='radio' name='buttons'>").attr("id", radioId), 
      $("<label>").attr("for", radioId).text(text)); 
    }); 

    $("#divLeft a input:radio").width("120px").button(); 
}); 

あなたはthis fiddleで結果を見ることができます。

+0

ありがとう、アンカーの動作は保持されていますか? – NimChimpsky

+0

@ニム、それはまだドキュメントにあります。私たちはそれにコンテンツを追加しているだけなので、それでも動作するはずです。 –

+0

私はそうは思わない、jsfiddleはとにかくいなかった:-( – NimChimpsky

関連する問題