crystaltrumpet,
должно так работать
$(window).on("load", function() {
var a=$(".tabflex .tab");
function out()
{
var elem = $(":target"), str = "все блоки закрыты";
if(elem.length) {
var id = elem[0].id;
str = "блок " + id + " открыт";
id = {"id1" : 0, "id2" : 1, "id3" : 2}[id];
a.css("background","rgba (128,128,128, 0.5)");
a.eq(id).css("background","gray");
}
$("#state").text(str)
}
$(window).on("hashchange", out).trigger("hashchange");
});