0

フォーム内のどのチェックボックスがそれらが存在するdiv要素に基づいて選択されるかを制御するjquery関数があります。varselectedObj=true; // document.ready()にあります

$('#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)は、変更される関数内の2つの要素だけです。この関数を再利用できるようにするために、毎回書き直すのではなく、これを除外したいと思います。

私が立ち往生しているのは、セレクターをパラメーターとして渡すことです。stylの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コントロールにレンダリングしています。

私はこれをずっと見つめていましたので、この関数をリファクタリングする方法やこれを見る別の方法についての提案は大歓迎です

4

2 に答える 2

0

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

于 2012-04-27T19:51:02.490 に答える
0

またはとデータパラメータを使用します.on.bind

$(myelelement).on("myevent",{someselector: "#foobar",someid:587},function (e) {
    alert(e.data.someid);
});
于 2012-04-27T19:18:21.660 に答える