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);
}
}这是一个按随机顺序显示fadeIn / fadeOut 6图像的函数。我也试着递归查找下一个图片,但是Firefox还是崩溃了。它有什么问题?
发布于 2013-01-15 19:58:54
你好,谢谢你的帮助,setTimeout的技巧对调试非常有用,因为我可以避免崩溃。
但真正的问题是:
:visible Selector在Firefox中的工作方式与在所有其他浏览器中不同。所以火狐中的jQuery认为,可见的内容块(缺失的图像)是不可见的,这导致了无限循环,因为在脚本允许的情况下,更多的图像是不可见的。解决方案:丢失图像的Alt-Text :-P
发布于 2013-01-15 19:13:10
想法:在另一个浏览器(chrome,比如,opera,safari)上试试。试着做大量的调试(放置注释和警报很多地方,看看哪里可以运行,哪里不是整个js),关闭其他的选项卡。
想法#2:我在旋转木马上也遇到了这个问题,解决方法很简单。禁用firefox中的所有扩展和插件。(好的,我只在firefox中遇到了这个问题,所有其他浏览器仍然工作正常……)
https://stackoverflow.com/questions/14336373
复制相似问题