0

Firefox 在执行这个简单的函数时会崩溃,而 Chrome、Safari 和 IE 执行这个函数没有任何问题:

jQuery(document).ready(function($) {

    if($('.fside_img').length>0) {
        gundeToggling(0,2000);
    }

});

function gundeToggling(prev,speed) {

    // 1. Choose a victim
    var victim = Math.floor(Math.random()*7); // number between 1 and 6

    // 2. Check if allowed or back to 1
    var alpha = $('#dn-a-'+victim);
    var beta = $('#dn-b-'+victim);

    var ctf_val = parseInt($('#ct_fones').val()); // Menge der sichtbaren prims
    var cts_val = parseInt($('#ct_sones').val()); // Menge der sichtbaren secs

    if(alpha.is(':visible') && ctf_val>2 && victim!=prev) {
        alpha.fadeOut(speed);
        beta.fadeIn(speed,function() {
            $('#ct_fones').val(ctf_val-1);
            $('#ct_sones').val(cts_val+1);
            gundeToggling(victim,speed);
        });
    } else if(beta.is(':visible') && cts_val>2 && victim!=prev) {
        beta.fadeOut(speed);
        alpha.fadeIn(speed,function() {
            $('#ct_fones').val(ctf_val+1);
            $('#ct_sones').val(cts_val-1);
            gundeToggling(victim,speed);
        });
    } else {
        gundeToggling(prev,speed);
    }
}

它是一个按随机顺序淡入/淡出 6 个图像的功能。我还尝试递归查找下一个图像,但 Firefox 仍然崩溃。它出什么问题了?

4

2 回答 2

0

想法:在另一个浏览器中尝试(chrome,即opera,safari)。尝试进行大量调试(放置注释并提醒很多地方,以查看可以运行的位置以及不运行整个 js 的位置)关闭所有其他选项卡。

想法#2:我也遇到了旋转木马的问题,解决方法很简单。禁用Firefox中的所有扩展和插件。(好吧,我只在Firefox中遇到了这个问题,所有其他浏览器仍然可以正常工作......)

于 2013-01-15T11:13:10.113 回答
0

您好,感谢您的帮助,setTimeout 的提示对于调试非常有用,因为我可以避免崩溃。

但真正的问题如下:

:visible 选择器在 Firefox 中的工作方式与所有其他浏览器不同。因此 Firefox 中的 jQuery 认为,可见的内容块(丢失的图像)是不可见的,这导致了无限循环,因为脚本允许更多的图像是不可见的。解决方案:缺失图像的替代文本:-P

于 2013-01-15T11:58:54.000 回答