Javascript 将单击事件附加到表似乎不起作用
我有一个表,其中一些结果分为两列,还有一个复选框。单击复选框时,我应将单击的或选定的复选框放在同一页面的div中 生成的html如下所示:Javascript 将单击事件附加到表似乎不起作用,javascript,jquery,Javascript,Jquery,我有一个表,其中一些结果分为两列,还有一个复选框。单击复选框时,我应将单击的或选定的复选框放在同一页面的div中 生成的html如下所示: <table cellspacing="0" cellpadding="4" id="ctl00_PlaceHolderMain_myGrid" style="color:#333333;width:100%;border-collapse:collapse;"> <tr style="color:White;bac
<table cellspacing="0" cellpadding="4" id="ctl00_PlaceHolderMain_myGrid" style="color:#333333;width:100%;border-collapse:collapse;">
<tr style="color:White;background-color:#5D7B9D;font-weight:bold;">
<th scope="col"> </th>
<th scope="col">JobCode</th>
<th scope="col">JobName</th>
<th scope="col">JobPartner</th>
<th scope="col">JobManager</th>
<th scope="col">ClientName</th>
</tr>
<tr style="color:#333333;background-color:#F7F6F3;">
<td>
<input id="ctl00_PlaceHolderMain_myGrid_ctl02_CheckBox1" type="checkbox" name="ctl00$PlaceHolderMain$myGrid$ctl02$CheckBox1" />
</td>
<td>Column1</td>
<td>Column2</td>
<td>Column3</td>
<td>Column4</td>
<td>Column5</td>
</tr>
</table>
工作代码
工作名称
工作伙伴
工作经理
客户名称
专栏1
专栏2
第3栏
专栏4
专栏5
在js文件中,我有一个:
//
$(文档).ready(函数(){
//在单击的每个复选框上
$(“#我的网格输入”)。单击(函数(){
var clientCode=$(this.parent().parent().parent().find(“td:eq(2)”).text()
var clientName=$(this.parent().parent().parent().find(“td:eq(1)”).text()
var displayvalue=clientCode.toUpperCase()+“-”+clientName.toUpperCase();
var removeDiv=$(“#”+clientCode);
移除iv.移除();
if($(this).prop(“选中”)==true){
AddSelectedJob(客户端代码,显示值);
//$(“[id$=ResultsDiv]”。追加(“”+displayvalue+“”);
//添加到选定的作业
FillSelectedJobs();
}
});
}
当我使用开发工具并附加js调试器时,我单击一个复选框,函数中有一个断点,但什么也没发生
更新
这是服务器aspx代码
<div style="width: 100%">
<div style="float: left">
<asp:Label ID="Label1" runat="server" Text="Search :"></asp:Label>
</div>
<div style="float: left">
<asp:TextBox ID="txtSearch" runat="server" Width="250px"></asp:TextBox>
</div>
<div style="float: left">
<asp:Button ID="btnSearch" runat="server" Text="Search" />
</div>
<div style="float: left; margin-left: 20px">
<asp:Label ID="lblClientCode" runat="server" Text=""></asp:Label>
</div>
<div style="clear: both"></div>
<div>
<div style="height: 300px; overflow: auto; float: left">
<asp:GridView ID="myGrid"
AutoGenerateColumns="true"
runat="server" CellPadding="4" ForeColor="#333333" GridLines="None" Width="100%">
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<EditRowStyle BackColor="#999999" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#E9E7E2" />
<SortedAscendingHeaderStyle BackColor="#506C8C" />
<SortedDescendingCellStyle BackColor="#FFFDF8" />
<SortedDescendingHeaderStyle BackColor="#6F8DAE" />
<Columns>
<asp:TemplateField>
<EditItemTemplate>
<asp:CheckBox ID="chkSelected" runat="server" />
</EditItemTemplate>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
<div style="margin-top: 0px; margin-left: 10px; float: left">
<asp:Label Text="Selected :" runat="server"></asp:Label>
<div id="ResultsDiv" style="margin-top: 0px">
</div>
</div>
<div style="clear: both"></div>
</div>
<div style="margin-top: 20px; margin-left: 550px">
<asp:Button ID="btnClose" runat="server" Text="Close" />
</div>
<div>
<asp:Label ID="lblError" runat="server" Text=""></asp:Label>
</div>
</div>
尝试使用.on()
尝试使用
试着这样做
$('#myGrid INPUT').live('click', function(){
试着这样做
$('#myGrid INPUT').live('click', function(){
请看这里:
使用
而不是
$("#myGrid INPUT").click(function () {
那么它应该可以工作了看看这里:
使用
而不是
$("#myGrid INPUT").click(function () {
然后它应该可以工作了。你的问题是,表id是由ASP分配的,所以当你通过
#myGrid
在javascript代码中查找它时,什么也找不到
一种方法是使用id将asp gridView包装在一个Div中,并使用该id
例如:
您的问题是,表id是由ASP分配的,因此当您通过
#myGrid
在javascript代码中查找它时,什么也找不到
一种方法是使用id将asp gridView包装在一个Div中,并使用该id
例如:
试试这个:
$("[id$='CheckBox1']").click(function(){
alert("CheckBox1 clicked");
});
试试这个:
$("[id$='CheckBox1']").click(function(){
alert("CheckBox1 clicked");
});
哪个元素具有
id
myGrid
?我看不到任何具有提供的id的元素。您的代码是否遗漏了什么,或者这是您的代码的问题?为了更好地理解,我添加了aspx代码。您可以提供呈现的html代码吗?这将更加清楚。哪个元素具有id
myGrid
?我看不到查看具有所提供Id的任何元素。您是否缺少某些内容,或者这是您的代码的问题?为了更好地理解,我添加了aspx代码。您可以提供呈现的html代码吗?这将更加清晰。“live”-与“bind”-用控件附加事件。从jQuery 1.7开始,.live()方法已被弃用。Use.on()若要附加事件处理程序,请选中“live”-与“bind”相同-将事件附加到控件。从jQuery 1.7开始,不推荐使用.live()方法。请使用.on()附加事件处理程序。请检查。如果用户单击标题行,则也会触发此操作?是的,但即使ASP未更改id,也会发生这种情况。是否要避免这种情况?还要注意,id可能会更改,因此不要使用BeNdErR的静态硬编码解决方案。下面是jQuery的另一个选择器:$()[id$=myGrid]input”)。单击(…);
如果用户单击标题行,则也会触发此操作?是的,但即使ASP未更改id,也会发生此情况。是否要避免此情况?还要注意,id可能会更改,因此不要使用BeNdErR的静态硬编码解决方案。这是jQuery的另一个选择器:$(“[id$=myGrid]输入“)。单击(…);
$("[id$=myGrid] INPUT").click(function () {...});
$("[id$='CheckBox1']").click(function(){
alert("CheckBox1 clicked");
});