jquery - 在没有document.ready()的情况下运行jQuery并崩溃,即8

标签 jquery crash

这是发生的事情的非常简单的例子

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/

相关文章:

javascript - 扩展文本框,需要边距或反页移动

crash - Raspberry Pi关闭会破坏文件系统

iphone - 启动 iPhone 应用程序时的 EXC_BREAKPOINT

javascript - Typeahead.js - 特殊字符返回为 "&#230;"等

jquery - 在堆栈溢出中制作类似 "Tags section"的文本

crash - JVM 崩溃问题框架:Canonicalizer::do_If

crash - TortoiseHg 卡住挂起崩溃

ios - iPad 应用程序在 iPad 3 上崩溃,在 iPad 2 上运行正常,内存不足警告

javascript - 如何通过 jQuery 添加悬停时会发生变化的图像链接?

javascript - 如何在控制台中获取特定的 Controller 范围列表 - angularjs?