这是发生的事情的非常简单的例子
jQuery(".resultAction").each(makeItso);
function makeItso() {
//code executes (it was a conditional to test for a file extension and display apply a class)
//the short version:
jQuery(this).find("#indicator").addClass("is" + fileExtension.slice(1));
//no file extension hide the icon div "indicator"
if ((fileExtension.indexOf('.') == -1)) {
jQuery(this).find("#indicator").addClass("not");
}
}
现在,这很好用,并且比.ready()更快,因为我每页大约有100个结果。
但是有一个错误:在最后一个元素上它没有执行-so,我这样做是为了在页面加载后在最后一个项目上重新运行该函数:
jQuery(document).ready(function(){
jQuery(".resultAction:last").each(makeItso);
});
因此,总而言之,这很好用,在Firefox,IE 7、8、9中-尽管HERE是有趣的部分:我使用Mac和VMware Fusion进行了测试,我“认为”我还可以,测试人员使用了他们的PC和IE 8 -Epic失败了。
我探究了一点:在虚拟机上进行的#1测试与实际交易不同。另外我的问题是,为什么在IE 8中崩溃,而在9和Fox中不能正常运行?我编码不好吗?
最佳答案
看来您在每个id="indicator"
中都有一个带有.resultAction
的元素。每个ID在页面上应该是唯一的。某些浏览器可能不关心此限制。其他人可能会。
将id="indicator"
更改为class="indicator"
,这可能会有所帮助。
至于您的其他问题,它不在最后一行执行,您无需等待document.ready,只要确保脚本在HTML中出现的时间晚于要处理的元素。即将<script>
标记放在正文的最后。如果您正在执行此操作,但它不起作用,则肯定需要查看完整的html。
关于jquery - 在没有document.ready()的情况下运行jQuery并崩溃,即8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13574712/