jQuery 扩展标签无法正常工作

jQuery Expand a tag not working correctly

我一直在尝试使锚标记上的展开折叠起作用,但不知何故我遗漏了一些东西。我浏览了这里几乎所有的链接,但没有发现我的代码和帮助选项之间的区别。

我想要的只是通过单击任何行的“+”符号进行简单展开。我正在 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();
        });
    });
}

您每次循环时都在向所有 .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();
    });
}