0

我有 jquery 函数,它根据它们所在的 div 元素控制表单中的哪些复选框被选中。 var selectedObj = 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) 是函数中唯一会改变的两个元素,我真的很想把这个因素考虑出来,这样我就可以重用这个函数,而不是每次都重写它。

我被卡住的地方是将选择器作为参数传递。由于 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

使用.onor.bind和 data 参数。

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