Я склонен сомневаться в том, что эта проблема связана с самим Firefox, но, скорее, вы просто замечаете это в Firefox больше. Я думаю, что проблема, вероятно, связана с синхронизацией ваших вызовов $ .get и .fadeIn (). Что-то иметь в виду ...
$("#mainDiv").fadeOut(showA1);
$("#mainDiv").fadeIn();
Эти две строки ставят в очередь две функции - fadeOut и затем fadeIn. Однако вы пытаетесь переключить контент где-то посередине.
Fade it out -> Внесите новый контент -> Fade it обратно в
То, что вы не учитываете, - это то, что для ввода нового контента может потребоваться время. Я предлагаю вам рефакторинг такие вещи.
function showA1()
{
$.get("zh1.html", function(data){
var $blk = $("#mainDiv");
$blk.html(data);
// only try to fadeIn the container if it's hidden (as it won't be hidden on initial page load when you call showA1)
$blk.is(':hidden') && $blk.fadeIn();
});
}
function showB2()
{
$.get("zh2.html", function(data){
$("#mainDiv").html(data).fadeIn();
});
}
function clickA1()
{
$("#mainDiv").fadeOut(showB2);
}
function clickB2()
{
$("#mainDiv").fadeOut(showA1);
}
Это делает так, чтобы операция fadeIn не ставилась в очередь до тех пор, пока html #mainDiv не был изменен.