window.intervalID_1 = setInterval(function() {
alert("start interval")
setTimeout(function() {
alert("start timeout")
}, 30);
if (true) {
clearInterval(intervalID_1);
}
alert("done");
}, 50);
// start interval
// done
// start timeout
В Вашем коде ошибки нет. Значит в первой фазе интервала условие if ($(".expanded-hack:visible").size() > 0) ложно