2012-01-30 10 views
0

私は次のjQueryスクリプトを使用してチェックボックスをjQuery-UIボタンに変換し、表示するアイコンを設定します。ボタンをクリックすると、アイコンも変更されます。それはすべて正常に動作します。しかし、私はチェックボックスの最初のチェック状態に基づいて、最初のアイコンを設定する正しい構文をヒットするように見えることはできません。jQuery-UIボタン初期アイコンを設定

function setCheckBoxImages() { 
     $(".check-box-image").button({ 
      icons: { primary: 'ui-icon-check' }, 
      text: false 
     }).change(function() { 
      $(this).button("option", { 
       icons: { primary: this.checked ? 'ui-icon-check' : '' } 
      }); 
     }); 
    }; 

<input class="check-box-image" type="checkbox" checked="@item.IsBusinessHours" id="checkbox1" disabled/><label for="checkbox1"></label> 

編集:ここに 私の最終的な作業のマークアップとスクリプトは以下のaccidentalgenius答えあたりの通りです:あなたはsetCheckBoxImages()を呼び出しているとき

@Html.CheckBox(@cbMobileId, @item.IsMobile, new { @class = "check-box-image", disabled = "disabled" })<label for="@cbMobileId">  

function setCheckBoxImages() { 
     var checkboxes= $(".check-box-image"); 

     checkboxes.button({ 
      text: false 
     }).change(function() { 
      $(this).button("option", { 
       icons: { primary: this.checked ? 'ui-icon-check' : 'ui-icon-minus' } 
      }); 
     }); 

     checkboxes.each(function() { 
      $(this).change(); 
     }); 
    }; 

答えて

0

でこれを試してみて、それぞれに対して変更機能を呼び出します。

+0

私は上記の元の質問で使用した最終的なスクリプトを入れました。 – daveywc

0

?コードの残りの部分を見ることなく、それは難しいですが、それをdocument.readyに呼んでみてください。

あなたは、チェックボックスの状態に基づいて、初期のアイコン設定する必要があります。

function setCheckBoxImages() { 
     var check = $(".check-box-image"); 
     check.button({ 
      icons: { primary: check.is(':checked') ? 'ui-icon-check' : '' }, 
      text: false 
     }).change(function() { 
      $(this).button("option", { 
       icons: { primary: this.checked ? 'ui-icon-check' : '' } 
      }); 
     }); 
    }; 
+0

私はdocument.readyでこの関数を呼び出しています – daveywc

+0

私は答えにいくつかのコードを追加しました。私は基本的にボタンの構築中に同じ検証を適用しています。 –

+0

私はちょうどあなたのコードを試して、それは私のために働いていません。すべての「チェックボックス」は、チェックされているかどうかにかかわらず、「uiアイコンチェック」アイコンで表示されます。 – daveywc

0

は多分あなたの関数が呼び出されていませんが。 あなたのjavascriptあなたはjQueryのボタンのすべてをループできた

$(document).ready(function(){ 
    $(".check-box-image").button({ 
     icons: { primary: 'ui-icon-check' }, 
     text: false 
    }).change(function() { 
     $(this).button("option", { 
      icons: { primary: this.checked ? 'ui-icon-check' : '' } 
     }); 
    }); 
}); 
+0

私は既にこのスクリプトをdocument.ready関数で呼び出しています。 – daveywc

+0

さて、あなたの投稿のあなたのコードはエラーがないと思います。あなたのコードをコピーして自分のhtmlファイルに貼り付けると動作します。他のJavaScriptコードにエラーがあり、コードが機能していない可能性があります。それをチェック! –

関連する問題