2014-07-16 32 views
0

总之,我需要先发制人地隐藏将在未来脚本中加载的元素。隐藏ajax注入元素而不触及ajax调用本身

我正在一个大而杂乱的应用程序工作。在特定的页面上,我可以运行任何我想要的javascript/jQuery,并在完成后,另一个模块将运行,我无法控制。第二个模块将元素注入到DOM中,绝不会向用户显示(笨拙,是吗?只是这个特定的页面应该具有这种反向的,不寻常的行为;注入的元素适用于所有其他页面)。关键是我无法访问加载不需要的DOM元素的ajax调用。

我正在考虑注入一个CSS样式表到页面中,但我想比较替代品。

回答

1

我会用css。这将减少延迟。如果在加载所有内容后注入样式,它将具有“闪存”样式,这意味着它在消失之前可能会出现一段时间。连接速度慢的用户会因此而受到影响,并且会受到移动设备的影响。如果您知道即将到来的元素,只需使用display:none;然后,使用jQuery将它带回

+0

谢天谢地,在用户的操作导致不需要的元素显示之前,css文件会加载很多。 ...不幸的是,事实证明,注入CSS的这一点也会影响将来可能想呈现这些元素的ajax加载模态。 我想一个解决这个问题的方法是在这个有问题的模式上使用一个唯一的ID,这样你的建议CSS定义将只针对该模式上不需要的元素。这是一个候选解决方案! –

+0

经过审查,CSS确实是最好的解决方案。它可以重用于类似的未来问题,其中我相信会有很多。 –

1

在ajax调用之前只隐藏元素将被注入的容器?

$(containerSelector).hide(); 

或注入CSS。如果您需要进行其他样式更改,则需要注入CSS,否则只需使用jQuery隐藏即可。

+0

一个令人惊讶的简单的解决方案。它可能不适合我的特殊情况,但它可能是这类问题的一般解决方案。绝对是一个候选解决方案。 –