当我不知道按钮名称时,如何使多个按钮调用相同的函数?

How do you make mulitple buttons call the same function when I don't know the button names?

本文关键字:按钮 调用 函数 我不知道 何使多      更新时间:2023-09-26

我有一个存储过程,它将返回一个包含n列的结果集(存储过程的逻辑决定要返回的列),我用它来构建一个"网格"。为此,我使用一个在运行时枚举的DataTable来动态构建dataccolumns:

             <table>
                <thead>
                    <% foreach (System.Data.DataColumn column in ((System.Data.DataTable)Model).Columns)
                       { %>
                    <th>
                        <%: column.Caption %>
                        <input id="Image1" type="image" src="../Content/theme/images/arrowhead-down.jpg" width="9px" height="5px"/></th>
                    </th>
                    <%}%>
                </thead>
                <tbody>
                    <%
            foreach (System.Data.DataRow row in ((System.Data.DataTable)Model).Rows)
            {%>
                    <tr>
                        <% foreach (var column in row.ItemArray)
                           { %>
                        <td>
                            <%: column.ToString() %>
                        </td>
                        <%}%>
                    </tr>
                    <%
            }
                    %>
                </tbody>
            </table>

每个新的列元素将包含image (button)类型的输入。实际上,该按钮将允许使用一些脚本隐藏列:

$(document).ready(function () {
            $('#Image1').click(function () {
                $('td:nth-child(3),th:nth-child(3)').hide();
            });
        });

所以我的问题是,我怎么能让每个新创建的按钮调用相同的函数,而不管按钮的名称(因为我不知道有多少按钮将被创建或他们的名字)?

使用相同的CSS类名。当使用。net时,避免将JavaScript与id挂钩,因为它喜欢独占它们。

那么你可以使用:

$('.buttonClassOfYourChoice').click(function() {
      ....common click code...
})

"this"指的是被点击的按钮:

$('.buttonClassOfYourChoice').click(function() {
     alert($(this).html())
})