Javascript 为什么这个jquery函数在循环它自己?
我在表格中显示了一些文本,并添加了一个“阅读更多”按钮来打开文本。但当我点击这个按钮时,我想同时在“div#selectedItem”中显示整个文本。如果单击“阅读更多”按钮查看其他文本,我想用当前文本替换该文本。这里的问题是,当我调试代码时,我发现当断点到达函数的末尾时,它会再次从函数开始。为什么会这样Javascript 为什么这个jquery函数在循环它自己?,javascript,jquery,Javascript,Jquery,我在表格中显示了一些文本,并添加了一个“阅读更多”按钮来打开文本。但当我点击这个按钮时,我想同时在“div#selectedItem”中显示整个文本。如果单击“阅读更多”按钮查看其他文本,我想用当前文本替换该文本。这里的问题是,当我调试代码时,我发现当断点到达函数的末尾时,它会再次从函数开始。为什么会这样 $(".table tbody").on("click", ".read-more", function readMore(e) { var c
$(".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);
});
我希望我的函数在每次单击时都能独立工作。因为在每次调用结束时,都有一个
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++;
});
因为在每次调用结束时,都会有一个
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++;
});
单击时间在哪里?此函数是一个内部函数。ClickedTimes在上面声明。ClickedTimes在哪里?此函数是一个内部函数。点击时间如上所述。杰克,是的,但现在还有另一个问题。当函数结束时,它会将我重定向到jquery-3.3.1文件,当我单击f10继续时,它会将我带回函数并再次执行它。在第一次执行中,我的cellText显示在#selectedItem中,但它递归循环14次。(我的计数器变为14)当我停止调试器并单击其他“阅读更多”按钮时,它并不是什么都没有!我解决了!我应该添加每个(函数)!非常感谢。杰克先生,是的,但现在还有另一个问题。当函数结束时,它会将我重定向到jquery-3.3.1文件,当我单击f10继续时,它会将我带回函数并再次执行它。在第一次执行中,我的cellText显示在#selectedItem中,但它递归循环14次。(我的计数器变为14)当我停止调试器并单击其他“阅读更多”按钮时,它并不是什么都没有!我解决了!我应该添加每个(函数)!非常感谢。