0

idでfollow要素を選択しようとしていますtoggleThisDiv。マークアップは次のようになります。

 <li id="liCategory" runat="server">
       <asp:HyperLink ID="lnkCategory" runat="server">
       <span><asp:Literal ID="litCategory" runat="server" Visible="true" /></span>
       <asp:Image ID="imgMan" runat="server" Visible="false" /></asp:HyperLink>
       <asp:Button ID="btnToggleDiv" runat="server" Text="+" Visible="false" />
 </li>

 <div id="toggleThisDiv" runat="server" style="display:none;margin-top:-16px;">

そしてjQuery:

$(document).ready(function () {
        $('[id*="btnToggleDiv"]').click(function () {
            $(this).next().slideToggle(100);
            return false;
        });
    });

これは、ボタンがリストアイテムの外側にある場合に機能しますが、これはすべてリピーターの内側にあり、そのままにしておくと、作成されたすべてのボタンは、関連付けられたリストアイテム内ではなく、隣り合って表示されます。

次のdiv(toggleThisDiv)を選択できるjQuery内の何かを探していますが、これは可能ですか?

ありがとうございました

4

2 に答える 2

1

同じ識別子が使用される要素を生成する場合は、一意のIDまたはクラスを使用します。

クリックされた要素の現在の親の外側の要素をターゲットにするには、セレクターに一致する最も近い親を見つけてから、次の要素などを見つけることができます。

$(document).ready(function () {
   $('[class*="btnToggleDiv"]').on('click', function () {
       $(this).closest('li').next('div').slideToggle(100);
       return false;
   });
});
于 2012-10-02T11:19:09.890 に答える
0

このようなものを使用してtoggleThisDivを選択します

$('#<%= toggleThisDiv.ClientID %>')

Webサイトがaspコードから生成される場合、IDは指定したものとは異なります。これは、サーバーで実行されるためです。runatサーバーを使用しているときはいつでも、上記の形式を使用して、生成されたIDを見つけてください。

ただし、リピーターには内部のクラスを使用する必要があります。

于 2012-10-02T11:17:27.467 に答える