我有一个repeater
其中每行都有2个div a和b
现在要在前台实现点击a或者b可以互相交替显示。比如点击div a 显示div b 点击div b显示div a这样交替。(只有一个div显示。另一个不显示或者说隐藏掉)问题来了
创建repeater时候,用奇偶行模板,每行的div a 和div b都是相同的id。
如:<asp:Repeater ID="rp" runat="server">
<HeaderTemplate >
<table>
<tr>
<td >11</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><div id="a" onclick ="viewdivb()">内容</div> <div id="b" onclick ="viewdivb()">内容</div></td>
</tr>
</ItemTemplate>
<AlternatingItemTemplate>
<tr>
<td><div id="a" onclick ="viewdivb()">内容</div> <div id="b" onclick ="viewdivb()">内容</div></td>
</tr>
</AlternatingItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>但是实际效果是,无论点击哪一行,都只在第一行显示交替。而不是所在行。比如点击第2行中的div,却在第一行的diva和b之间交替。点击低3行也是第n行也是。。永远都在第一行。
不知道如何用js实现判断我点击的是哪个行中的div,在所在行进行交替。
用了比较多的方法。比如判断div 的状态。但是都是失败了。
请教
其中每行都有2个div a和b
现在要在前台实现点击a或者b可以互相交替显示。比如点击div a 显示div b 点击div b显示div a这样交替。(只有一个div显示。另一个不显示或者说隐藏掉)问题来了
创建repeater时候,用奇偶行模板,每行的div a 和div b都是相同的id。
如:<asp:Repeater ID="rp" runat="server">
<HeaderTemplate >
<table>
<tr>
<td >11</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><div id="a" onclick ="viewdivb()">内容</div> <div id="b" onclick ="viewdivb()">内容</div></td>
</tr>
</ItemTemplate>
<AlternatingItemTemplate>
<tr>
<td><div id="a" onclick ="viewdivb()">内容</div> <div id="b" onclick ="viewdivb()">内容</div></td>
</tr>
</AlternatingItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>但是实际效果是,无论点击哪一行,都只在第一行显示交替。而不是所在行。比如点击第2行中的div,却在第一行的diva和b之间交替。点击低3行也是第n行也是。。永远都在第一行。
不知道如何用js实现判断我点击的是哪个行中的div,在所在行进行交替。
用了比较多的方法。比如判断div 的状态。但是都是失败了。
请教
那么实际效果就是,不管点击奇数行中哪一样行diva或者b 都只会在奇数行的第一行交替。
不管点击偶数行中哪一样行diva或者b 都只会在偶数行的第一行交替。
用jquery比较方便。
$(function(){
$("a[name='a'][name='b']").click(function(){
$(this).hide();
if($(this).attr("name")=="a"){
$(this).next().show();
}else
{
$(this).prev().show();
}
});
});
$(this).find('div').eq(0).click(viewdivb);
$(this).find('div').eq(1).click(viewdiva);
});或者$('table').find('div').removeAttr('onclick').filter('even').click(viewdivb).filter('odd').click(viewdiva);