ASP .NET ページにリピーター コントロールが含まれています。気になるHTMLはこちら。ここにはいくつかのカスタム コントロールがありますが、それは私の質問にとって重要ではないと思います。
<table style="border: 0px;" cellpadding="0" cellspacing="0">
<tr>
<td style="width: 150px;">
<b>Topic</b>
</td>
<td style="width: 250px; padding-right:10px;">
<b>Score</b>
</td>
</tr>
<asp:Repeater ID="_prvCtlRepeaterSurveyTopics" runat="server">
<ItemTemplate>
<tr>
<td style="width: 35%;">
<div id="ClickToExplandDiv">
<img id="_prvCtlImagePlusMinus" runat="server" alt="Expand/Collapse" src="" class="PlusMinus" />
<customtagprefix:ctlEncodedLabel id="_prvCtlEncodedLabelTopicText" runat="server" CssClass="ECLink" />
</div>
</td>
<td style="width: 30%;">
<img id="_prvCtlImageTopic" runat="server" src="" alt="Score" />
</td>
<td style="width: 35%; white-space: nowrap;">
<customtagprefix:ctlEncodedLabel id="_prvCtlLabelTopic" runat="server" />
</td>
</tr>
<tr>
<td style="padding: 3px 15px; width: 400px;" colspan="3">
<div id="ExplandODiv">
<customtagprefix:ctlRoundedGrayHeader id="_prvCtlRoundedGrayHeaderCF" runat="server" />
<customtagprefix:ctlSummeryResultsList ID="_prvCtlSummaryResultsList" runat="server" />
<customtagprefix:ctlRoundedGrayFooter id="_prvCtlRoundedGrayFooterCF" runat="server"/>
</div>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
このコードで作成された DIV をクリックできるようにしたい:
<div id="ClickToExplandDiv">
<img id="_prvCtlImagePlusMinus" runat="server" alt="Expand/Collapse" src="" class="PlusMinus" />
<customtagprefix:ctlEncodedLabel id="_prvCtlEncodedLabelTopicText" runat="server" CssClass="ECLink" />
</div>
このセグメントに表示される情報を展開または折りたたみます。
<td style="padding: 3px 15px; width: 400px;" colspan="3">
<div id="ExplandODiv">
<ayco:ctlRoundedGrayHeader id="_prvCtlRoundedGrayHeaderCF" runat="server" />
<ayco:ctlSummeryResultsList ID="_prvCtlSummaryResultsList" runat="server" />
<ayco:ctlRoundedGrayFooter id="_prvCtlRoundedGrayFooterCF" runat="server"/>
</div>
</td>
私はこのためのJQueryに途方に暮れています。現在、最初に非表示にしたいすべての DIV を正常に非表示にしてから、最初の非表示の DIV だけを開く次のようなものがあります。
<script type="text/javascript">
var isInitialized = false;
$(document).ready(function() {
if (!isInitialized) {
$('[id=ExplandODiv]').hide();
isInitialized = true;
}
$('div[id=ClickToExplandDiv]').click(function() {
$('#ExplandODiv:first-child').toggle();
});
});
</script>
これを回避するために考えられる 1 つの方法は、ItemDatabound(...)
イベントでそれらを実行するときに、要素に「偽のクラス」を割り当てることです。ただし、クリックしたリンクの下で適切な DIV を選択する CSS セレクターを使用できるようにする必要があると考えています。「this」オブジェクトの派生物かもしれませんが、これを理解するのに苦労しています。
これについてあなたが提供できる助けをいただければ幸いです。ありがとう。