Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将单击事件附加到表似乎不起作用_Javascript_Jquery - Fatal编程技术网

Javascript 将单击事件附加到表似乎不起作用

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

我有一个表,其中一些结果分为两列,还有一个复选框。单击复选框时,我应将单击的或选定的复选框放在同一页面的div中

生成的html如下所示:

<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">&nbsp;</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");
});