2012-04-27 2 views
0

フォーム内のどのチェックボックスが存在するdiv要素に基づいて選択されるかを制御するjquery関数があります。 var selectedObj =真; // document.ready()に位置セレクタと要素idをパラメータとして関数に渡すためにjquery関数を再因子化する方法

$('#selectAllEntities').click(function (event) { 
    if (selectedObj == true) { 
     $('#selectAllEntities').text('Unselect All'); 
     $(':checkbox', '#myentities').each(function() { 
      this.checked = true; 
     }); 
     selectedObj = false; 
    } 
    else { 
     $('#selectAllEntities').text('Select All'); 
     $(':checkbox', '#myentities').each(function() { 
      this.checked = false; 
     }); 
     selectedObj = true; 
    } 
}); 

セレクタとdiv要素(#myentities)私は本当に、私はこれを再利用することができますこれを考慮したいと思い変わる機能で唯一の二つの要素がありますそれを毎回書き直すのではなく、

ここでは、セレクタをパラメータとして渡しています。私はスタイリングのCSS継承のためセレクタとしてクラスを使用できません

<div id="myentities" class="rm_RoleColumn"> 
       <p> 
        Select the entities that this role can view</p> 
       <a id="selectAllEntities" class="am_Button floatLeft">Select All</a> 
       <hr class="hrNoColor" /> 
       <div> 
        <asp:Panel ID="pnl_EntityList" runat="server" /> 
       </div> 
      </div> 

パネルはチェックボックスが表示される場所です。私はそれらをサーバー側に生成し、それらをWebコントロールにレンダリングしています。私はあまりにも長い間、このを見つめてきた

ので、このを見て、この機能または別の方法をリファクタリングする方法上の任意の提案を大幅に

答えて

0

これをチェックしてください。クラスを追加して個々の関数を使い、ボタンIDと入力クラスに2つのパラメータを渡しました。トラフのカップルオブジェクトをループするには、クラスを使用する必要があるので、それらのクラスをあなたのcssファイルに持ってきて、それらをターゲット値として使用する必要はありません。この方法で、いつでもこれを呼び出すことができます。 http://jsfiddle.net/hz4nN/1/

0

使用.onまたは.bindとデータパラメータをいただければ幸いです。

$(myelelement).on("myevent",{someselector: "#foobar",someid:587},function (e) { 
    alert(e.data.someid); 
}); 
関連する問題