我一直试图让锚标记上的展开折叠工作,但不知怎的,我错过了一些东西。我在这里查看了几乎所有链接,但没有找到我的代码和帮助选项之间的区别。
我想要的只是点击" +"任何一行的标志。我正在我的javascript文件中动态构建div。不知怎的,我只能展开所有备用行。所以,如果我的回答有5个元素,我只能扩展每一行!谁能告诉我有什么问题?
谢谢,
涅茧利
function DisplayResultsGrid(obj) {
$.each(obj, function(index, item) {
$("#divRequestDetails").append('<div class="requestDetailItem"><a href="#" class="lnkRequest"> + </a><div class="toggleDays">This is the text to expand</div></div>').append('<div class="rowSeparator"></div');
$('.toggleDays').hide();
$('.lnkRequest').click(function() {
$(this).next('.toggleDays').toggle();
});
});
}
答案 0 :(得分:0)
每次循环时,您都会向所有.lnkRequest元素添加一个单击。您没有向当前事件添加事件。因此,第一个将有第一个点击事件,加上下一个,加上第三个,等等。
您需要在每个循环之外分配事件或使用事件委派。
function DisplayResultsGrid(obj) {
$.each(obj, function(index, item) {
$("#divRequestDetails").append('<div class="requestDetailItem"><a href="#" class="lnkRequest"> + </a><div class="toggleDays">This is the text to expand</div></div>').append('<div class="rowSeparator"></div');
});
$('.toggleDays').hide();
$('.lnkRequest').click(function() {
$(this).next('.toggleDays').toggle();
});
}