Javascript 如何避免引发Firefox警告的jQuery调用?

Javascript 如何避免引发Firefox警告的jQuery调用?,javascript,jquery,firefox,Javascript,Jquery,Firefox,我有一个带有“全选”选项的决斗列表框,“全选”后面的javascript是: $('#' + source).remove().appendTo('#' + destination); 在源列表框包含几千个条目的情况下,我只在Firefox中收到一条“警告:无响应Javascript”消息(Chrome可以正常工作)。最糟糕的是,如果在消息之后单击“继续”,则操作永远不会完成。FF版本是41.0.1 如果我理解FF在做什么,我猜它怀疑有一个长的(可能是递归的)循环,并试图拦截它,但我认为情况并

我有一个带有“全选”选项的决斗列表框,“全选”后面的javascript是:

$('#' + source).remove().appendTo('#' + destination);
在源列表框包含几千个条目的情况下,我只在Firefox中收到一条“警告:无响应Javascript”消息(Chrome可以正常工作)。最糟糕的是,如果在消息之后单击“继续”,则操作永远不会完成。FF版本是41.0.1

如果我理解FF在做什么,我猜它怀疑有一个长的(可能是递归的)循环,并试图拦截它,但我认为情况并非如此,如果它以这种方式运行,我无法向人们发布


有没有什么方法可以改变javascript,让FF不会抱怨?有没有一种更有效的纯JS方式来完成不引起FF困扰的.appendTo()?

为什么要调用
remove
<代码>附加到将移动元素;没有理由在
删除
上链接
附加到
。。。正如James所说,DOM中有数千个节点不是一个好的UX,但无论哪种方式,代码都应该清理到:


$(“#”+源)。附加到(“#”+目的地)

尝试逐个执行功能:

第一个
$('#'+源代码).remove()

然后
$('#'+源代码).appendTo('#'+目标代码)

使用
console.log('这就是现在发生的事情')
函数查看执行停止的位置

此外,请尝试使用以下代码包装有问题的代码:

window.onload = function() {
    // your code here
};

这对你没有帮助,但我会开始质疑是否有一个UI有一个“包含几千个条目”的列表框——听起来不太好UX@JamesThorpe,我完全同意,但它是一个动态列表框,通常不包含那么多,但在一些最坏的情况下,它可能会变成这样。我不是设计它的,现在我只是想让它工作。很公平!我们都有这样的问题需要解决:)谢谢@harris,我实际上已经改为创建一个html字符串并将.append()添加到目标控件,但我仍然收到FF中的警告。我肯定要和设计团队谈谈,问为什么我们允许移动300000行。谢谢@Ciprian,我已经确定它是.appendTo(),因为它有300000行,并且使用console.log()来精确定位。此外,我无法执行call.onload,因为它是在链接之外动态执行的。