好吧,我在表格中显示了一些文本,并添加了一个“阅读更多”按钮来解开文本。但是,当我单击此按钮时,我想同时在“ div#selectedItem”中显示整个文本。如果单击“阅读更多”按钮以获取另一文本,我想将该文本替换为当前文本。这里的问题是当我调试代码时,我看到当断点到达函数末尾时,它再次从开头开始。为什么会这样呢?
$(".table tbody").on("click",
".read-more",
function readMore(e) {
var currentRow = $(this).closest("tr");
var cellText = currentRow.find("td:eq(1)").text();
$(this).siblings(".more-text").contents().unwrap();
$(this).remove();
e.preventDefault();
if (clickedTimes > 0)
$("div#selectedItem").html("");
$("div#selectedItem").prepend(cellText).html();
clickedTimes++;
setTimeout(readMore, 1000);
});
我希望我的功能将对每次点击独立起作用。
答案 0 :(得分:0)
因为在每次调用结束时,您都有一个setTimeout
可以重新调用该函数。删除它,您的代码将不再递归循环:
$(".table tbody").on("click", ".read-more", function readMore(e) {
var currentRow = $(this).closest("tr");
var cellText = currentRow.find("td:eq(1)").text();
$(this).siblings(".more-text").contents().unwrap();
$(this).remove();
e.preventDefault();
if (clickedTimes > 0)
$("div#selectedItem").html("");
$("div#selectedItem").prepend(cellText).html();
clickedTimes++;
});