[英]Accordion not working properly
我必須顯示一些類似於jquery的手風琴的功能,所以我制作了jquery的自定義函數以產生效果。
有一個網格視圖,其中有兩個div,這是代碼。
<asp:GridView ID="grdAccordion" runat="server" AutoGenerateColumns="false" Width="200px">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<div class="myFirstDiv" onclick="testToggle(this)">
<%#Eval("Name")%>
<div class="mySecondDiv" style="display:none">
<%#Eval("Person_Name")%>
</div>
</div>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
第二個div的樣式屬性不顯示。 默認情況下,所有div都是關閉的。
比我做了一個使用切換功能來執行動作代碼的js函數。
function testToggle(testDiv) {
debugger
var sntHdnValue = $('#hdnSetFlag').val();
if (sntHdnValue == 1) {
$(testDiv).find('div:first').show().attr('isOpen', 'true');
}
else {
$(testDiv)
.parents('table:first')
.find('div[isOpen=true]').removeAttr('isOpen').toggle('slow');
$(testDiv).find('div:first').show().attr('isOpen', 'true');
}
sntHdnValue++;
$('#hdnSetFlag').val(sntHdnValue);
}
在這里,我利用了隱藏字段,讓我知道這是所有事物都已關閉的初始狀態,我正在添加自定義屬性attr isopen以供識別
1)目前的情況是,應該關閉所有負載。 2)比一次只打開一個div。
這很好。
問題是,如果我單擊打開的同一個div時,它具有兩個自定義attr isopen,則現在它打破了第二種情況。 如何解決。
辛苦了。
更新功能。
var glDivID = 0;
function testToggle(testDiv) {
debugger
var sntHdnValue = $('#hdnSetFlag').val();
var dvID = $(testDiv).attr('id');
if (sntHdnValue == 1) {
$(testDiv).find('div:first').show().attr('isOpen', 'true');
}
else {
$(testDiv)
.parents('table:first')
.find('div[isOpen=true]').removeAttr('isOpen').toggle('slow');
if (glDivID != dvID) {
$(testDiv).find('div:first').show().attr('isOpen', 'true');
}
}
sntHdnValue++;
$('#hdnSetFlag').val(sntHdnValue);
glDivID = dvID;
}
我在向網格添加數據時附加了一個id。檢查了相同的內容以測試它是否是自擊式的
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.