Javascript 如何使用jQuery从复选框单击事件获取父radcombobox控件对象?

Javascript 如何使用jQuery从复选框单击事件获取父radcombobox控件对象?,javascript,jquery,asp.net,telerik,Javascript,Jquery,Asp.net,Telerik,我有一个打开复选框的radcombobox。我编写了一个jQuery脚本,向所有这些脚本中添加了一个单击事件。我需要进入下一步的是获取该项/复选框所在的组合框的方法。大概是这样的: $(."comboBoxTag.find(":checkbox").click( function(){ var cboObject = $(this).??? }); 通过这种方式,我可以访问telerikapi方法,比如cboObject.get_item

我有一个打开复选框的radcombobox。我编写了一个jQuery脚本,向所有这些脚本中添加了一个单击事件。我需要进入下一步的是获取该项/复选框所在的组合框的方法。大概是这样的:

$(."comboBoxTag.find(":checkbox").click(
        function(){
            var cboObject = $(this).???
        });
通过这种方式,我可以访问telerikapi方法,比如cboObject.get_items

我用一个名为AssigneeTag的CSS类对控件进行了标记,但是执行.closest.AssigneeTag不会返回任何内容

有什么想法吗

更新: 应要求:

<h1>Tickets Assigned to Me</h1>
    <rad:RadListView runat="server" ID="lsvTickets">
        <ItemTemplate>
            <div id="divContainer" class="divContainer">
                <div id="divTicketHeader" class="divTicketHeader">
                    <asp:Table runat="server" ID="tblTicketHead" Width="100%" CellSpacing="0" CellPadding="5" HorizontalAlign="Center">
                        <asp:TableRow HorizontalAlign="Left">
                            <asp:TableCell  Width="25%">
                                <asp:Label ID="lblSubject" runat="server" Text='<%#Eval("Subject") %>' Font-Bold="true" />
                            </asp:TableCell><asp:TableCell Width="25%">
                                <asp:Label ID="lblStatus" runat="server" Text='<%#Eval("Status.Key") %>' />
                            </asp:TableCell><asp:TableCell Width="25%">
                                <asp:Label ID="lblReportedBy" runat="server" Text='<%#Eval("CreatedBy.Key") %>' />
                            </asp:TableCell><asp:TableCell Width="25%">
                                <asp:Label ID="lblDateOpened" runat="server" Text='<%#Eval("DateOpened") %>' />
                            </asp:TableCell></asp:TableRow></asp:Table></div><div id="divTicketBody" class="divComments">
                        <rad:RadListView runat="server" ID="lsvActions" DataSource='<%#Eval("Comments") %>' ItemPlaceholderID="ph1" ClientIDMode="Static">
                            <ItemTemplate>
                                <div id="divComment" class="divComment">
                                    <asp:Table runat="server" ID="tblComment" CellPadding="5">
                                        <asp:TableRow>
                                            <asp:TableCell Width="15%" HorizontalAlign="Center">
                                                <rad:RadBinaryImage runat="server" ID="imgCommenter" Width="50" Height="50" /><br />
                                                <asp:Label ID="Label5" runat="server" Text="[action author]" /><br />
                                                <asp:Label ID="Label6" runat="server" Text='<%#Eval("CreateDate", "{0:MMM d, yyy hh:mm}") %>'
                                                     CssClass="commenterText"/><br />
                                            </asp:TableCell><asp:TableCell>
                                                <asp:Label ID="Label7" runat="server" Text='<%#Eval("CommentText") %>' />
                                            </asp:TableCell></asp:TableRow></asp:Table></div></ItemTemplate><LayoutTemplate>
                                <center>                            
                                <div id="divAddComment" style="width: 500px;" class="CommentTopLevel">
                                    <div id="divCommentControls" style="margin: 8px 0px 8px 0px;">
                                        <asp:HiddenField runat="server" ID="hfID" Value='<%#Eval("TicketID") %>' />
                                        <rad:RadComboBox runat="server" ID="cboStatus" DataSource='<%#GetStatuses() %>' DataTextField="Status" DataValueField="Support_StatusID" CssClass="StatusTag" EnableViewState="true" />
                                        <rad:RadCombobox runat="server" ID="cboAssignTo" DataSource='<%#GetAssignees() %>' DataTextField="Name" DataValueField="Guid" ItemDataBound="Assignees_Bound" CssClass="AssigneeTag" CheckBoxes="true" OnItemChecked="AssigneeChecked" />
                                        <rad:RadTextBox runat="server" ID="txtComment" TextMode="MultiLine" Width="500" Height="100" CssClass="CommentBox" /><br />
                                    </div>

                                    <div style="height: 35px;">
                                        <div style="float:right; margin: 3px 0 0 0; ">
                                            <rad:RadButton runat="server" CssClass="submitTag" ID="btnSubmit" Text="Submit" /><br />
                                            <div class="SubmitStatus"></div>
                                        </div>
                                    </div>
                                </div>
                                </center>
                                <asp:PlaceHolder ID="ph1" runat="server" />
                            </LayoutTemplate>
                        </rad:RadListView>
                    </div>
            </div>
        </ItemTemplate>
    </rad:RadListView>
这是一个listview,另一个listview嵌套在itemtemplate中。在内部列表的itemtemplate中驻留控件。我所指的组合框名为cboAssignTo。它是一个Telerik组合框,所以它不像传统的下拉菜单那样工作,我认为这是最复杂的,因为组合框是动态生成的。我可以使用$this.closest.rcbTag这样的方法来获取另一个名为cboStatus的组合框的值,但是这个组合框包含更多的复选框

编辑:

这里是一个淡化的更容易阅读的版本,我所处的阶段。这是此组合框的单个实例生成的HTML:

<div id="lsvTest" class="RadComboBox RadComboBox_Default RcbTag" style="width:160px;">
    <table summary="combobox" style="border-width:0;border-collapse:collapse;table-layout:fixed;width:100%">
        <tr class="rcbReadOnly">
            <td style="margin-top:-1px;margin-bottom:-1px;width:100%;" class="rcbInputCell rcbInputCellLeft">
                <input name="lsvTest" type="text" class="rcbInput" id="lsvTest_Input" value="" style="display: block;" readonly="readonly" />
            </td>
            <td style="margin-top:-1px;margin-bottom:-1px;" class="rcbArrowCell rcbArrowCellRight">
                <a id="lsvTest_Arrow" style="overflow: hidden;display: block;position: relative;outline: none;">select</a>
            </td>
        </tr>
    </table>

    <!-- 2012.1.215.40 -->
    <div class="rcbSlide" style="z-index:6000;">
        <div id="lsvTest_DropDown" class="RadComboBoxDropDown RadComboBoxDropDown_Default " style="float:left;display:none;">
            <div class="rcbScroll rcbWidth" style="width:100%;">
                <ul class="rcbList" style="list-style:none;margin:0;padding:0;zoom:1;">
                    <li class="rcbItem "><input type="checkbox" class="rcbCheckBox" />One</li>
                    <li class="rcbItem "><input type="checkbox" class="rcbCheckBox" />Two</li>
                    <li class="rcbItem "><input type="checkbox" class="rcbCheckBox" />Three</li>
                </ul>
            </div>
        </div>
    </div>
    <input id="lsvTest_ClientState" name="lsvTest_ClientState" type="hidden" />
</div>

看看这个,我想点击一个复选框,然后使用$this.closest.RcbTag应该一直移动到顶部并抓取外部div,但事实并非如此。

我通过调用解决了类似的问题,你试过了吗?

与其他问题一样,我认为如果你坚持使用Telerik认可的方法,你的生活会更轻松。以下是使用它们的方法:

<script language="javascript" type="text/javascript">
    function OnClientItemChecked(sender, eventArgs) {
        var item = eventArgs.get_item();
        var combo = item.get_comboBox(); // Now you have a reference to the parent ComboBox
    }
</script>
以及RadComboBox本身:

<telerik:RadComboBox ID="RadComboBox1" runat="server" 
    OnClientItemChecked="OnClientItemChecked" CheckBoxes="true">
</telerik:RadComboBox>

你能创建一个包含html结构的js fiddle please吗?这样我们就知道你想要完成什么了?我尝试了几个不同的层次,我能够得到对象,但是我不认为它们是正确的对象,因为我无法调用任何已知的方法,我不想这样做的原因是,如果我做任何事情来改变层次结构,它就会崩溃。