gpt4 book ai didi

javascript - while 循环工作时页面变得无响应

转载 作者:行者123 更新时间:2023-12-02 14:20:38 25 4
gpt4 key购买 nike

当我的 while 循环工作时,我的页面变得无响应

$(".hidebutton").click(function () {
var parented = $(".selected").data("id");
var currentid = parented + 1;
while(true)
{
var chiledtrleft = $("tr[data-id='" + currentid + "']> td:first-child").css("padding-left");
var parentleft = $("tr[data-id='" + parented + "']> td:first-child").css("padding-left");
if (chiledtrleft <= parentleft) {
break;
}

$("tr[data-id='" + currentid + "']> td:first-child").hide();
// do shifting here

}
});

我的代码有什么问题?

最佳答案

您的循环无限期地运行。我发现您的代码有一些问题。

var chiledtrleft = $("tr[data-id='" + currentid + "']> td:first-child").css("padding-left"); 
var parentleft = $("tr[data-id='" + parented + "']> td:first-child").css("padding-left");

这些行将返回看起来像“10px”的字符串,而不是像“10”这样的整数。如果您想比较它们,您需要使用函数 parseInt 解析 int。

您的代码将进行词法比较(按字母顺序),我怀疑这是您的 if 语句失败的部分原因。您可以像这样修复此问题:

var chiledtrleft = parseInt($("tr[data-id='" + currentid + "']> td:first-child").css("padding-left"));
var parentleft = parseInt($("tr[data-id='" + parented + "']> td:first-child").css("padding-left"));

此外,您实际上并没有对循环中的填充执行任何操作。如果条件评估为 false,它将无限期地继续评估为 false。你需要对填充做一些事情(我不确定你想要完成什么)。我假设注释 //doshiftinghere 是为了调整填充。实现该建议和我的上述建议应该可以修复您的循环。

关于javascript - while 循环工作时页面变得无响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38670964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com