【发布时间】:2017-05-24 14:08:05
【问题描述】:
我正在尝试实现具有展开/折叠功能的嵌套网格视图。我的问题是 jQuery 点击功能不起作用。场景如下:
jQuery:
$("[src*=plus]").on("click", "img", function () {
alert('hi');
$(this).closest("tr").after("<tr><td></td><td colspan = '999'>" + $(this).next().html() + "</td></tr>")
$(this).attr("src", "images/minus.png");
});
$("[src*=minus]").on("click", "img", function () {
$(this).attr("src", "images/plus.png");
$(this).closest("tr").next().remove();
});
网格视图:
<asp:GridView ID="gvCustomers" runat="server" AutoGenerateColumns="false"
DataKeyNames="Id" OnRowDataBound="OnRowDataBound">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<img alt = "" style="cursor: pointer" src="images/plus.png" />
<asp:Panel ID="pnlOrders" runat="server" Style="display: none">
<asp:GridView ID="gvOrders" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundField ItemStyle-Width="150px" DataField="Id" HeaderText="Order Id" />
<asp:BoundField ItemStyle-Width="150px" DataField="Policy" HeaderText="Date" />
</Columns>
</asp:GridView>
</asp:Panel>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField ItemStyle-Width="150px" DataField="Id" HeaderText="Contact Name" />
<asp:BoundField ItemStyle-Width="150px" DataField="Name" HeaderText="City" />
</Columns>
</asp:GridView>
现在,如果我用 .live() 方法更改 .on() 方法,那么它工作得很好。任何精通 jQuery 的人都知道我做错了什么。谢谢!
【问题讨论】: