0

Backbone.jsを使用してコンテンツを置き換える次のコードがあります

jsfiddle

コンテンツを置き換えるとチェックボックスボタンが大きくなる理由がわかりません。単純に、次のコードを使用してチェックボックスをオンにします

 $('.checkWeek').button(); 
4

3 に答える 3

1

現時点では、コードはテンプレートをdivタグに保存します-呼び出すたびbuttonにテンプレートが変更されます。これを回避するにはscript、タイプ付きのタグを使用してtext/template、Javascriptとして実行されないようにします。

今のリグス:

<div data-template-name="central-home">
    <div data-template-name="">
        <input type="checkbox" class="checkWeek" id="checkWeekM" />
        <label for="checkWeekM">L</label>
    </div>
</div>

への変更:

<script data-template-name="central-home">  
    <div data-template-name="">
         <input type="checkbox" class="checkWeek" id="checkWeekM" /><label for="checkWeekM">L</label>
    </div>      
</script>

Javascriptを変更しないと、テンプレートは見つかりません。したがって、この行も更新する必要があります。

 content.view = ...$.trim($("[data-template-name='"+ template_name +"'] div").html()...

テンプレートをdiv内に配置する必要がある場合:

content.view = ...$.trim($("[data-template-name='"+ template_name +"']").html() ...

ワーキングフィドル

于 2013-02-05T20:58:41.747 に答える
1

$('.checkWeek').button();その理由は、クリックするたびに を呼び出し続けるため、JQuery が面白いことをして aspan内に aspanを追加し、サイズが大きくなるためだと思います。

$('.checkWeek').button();簡単な修正は、ボタンが既に存在する (または表示されている) 場合は呼び出さないことです。

// if button already exists then dont add it again.
if(!$('label[for=checkWeekM]').hasClass('ui-button'))
      $('.checkWeek').button();

ここを見てください:http://jsfiddle.net/Thxtr/3/

于 2013-02-05T21:05:04.250 に答える
0

要素ごとに1回、または合計で1回だけ$('.checkWeek').button()呼び出す必要があると思います。.checkweek

その場合、可能な回避策は次のとおりです。

  1. 条件付きで実行し$('.checkWeek').button()ます(ただし、テストが何であるかはわかりません)。
  2. セレクターを$('.checkWeek')より選択的にします。つまり、新しく追加された要素のみを選択します。
  3. destroy オプションが存在する場合は、呼び出します$('.checkWeek').button('destroy').button()(または同様の - プラグインの API ドキュメントを検索する必要があります)。

アプリ (およびプラグイン) をより完全に理解しないと、これらの可能性のどれが最も適切かを判断できません。

于 2013-02-05T21:02:42.297 に答える