当我们检测到Firefox时,我们会调用
jQuery('.trunc').textOverflow();
但如果页面很长,Firefox会发出“无响应脚本”警报。我相信实际的问题是在最初的jQuery调用中(当它通过CSS找到所有匹配的DOM元素时)。
我不是jQuery专家,但看起来它真的有利于一种风格,它可以构建所选项目的列表并将它们传递给链条。所以可能没有一个很好的解决方法。但是,有吗?我不关心链接,我只想将textOverflow发送到相关元素。
答案 0 :(得分:1)
在黑暗中拍摄一点点,但您可能想尝试更改选择器以包含标签名称。由于这可以避免查询整个DOM,并将其限制为仅仅那些标记,因此效率更高。
jQuery('span.trunc').textOverflow();
用相关标签替换span。不确定它是否会有所作为,但无论如何它都更有效:)
祝你好运!答案 1 :(得分:1)
这取决于你谈论的元素数量,但是你的类选择器应该在Firefox中非常快,即使有很多元素。这是因为Firefox支持getElementsByClassName
本机方法...所以你拥有的选择器基本上与对document.getElementsByClassName("trunc")
的调用相同。
我认为罪魁祸首是textOverflow
调用,因为Firefox本身不支持这个CSS功能,所以我想象textOverflow插件会做很多字符串处理/ DOM / CSS操作获得正确的文本溢出行为。
你可以通过在没有textOverflow()
调用的情况下调用选择器来测试它,看看需要多长时间:
var truncElements = $('.trunc');
如果上面的代码在Firefox中的大页面上快速运行,那么我会责怪textOverflow。