オーバーレイでデリゲートを使用して、イベントをバブルアップしてみてください。
編集
フィドルは今日遅く、私が最初に投稿したフィドルには、私が使用したコードが含まれていませんでした。
これは、jQuery バージョン (1.8.2) で選択された jsBIN フォークへのリンクをいじって動作します: http://jsbin.com/ugeniq/3/edit
EDIT 2
divのないマウス/オーバー/アウトが機能しないことに気付きました。コードを更新したので、div オーバーレイの有無にかかわらず動作するようになりました。
var fail = true;
var button = document.getElementById("button");
var overlay = document.getElementById("overlay");
var log = document.getElementById("log");
button.addEventListener('click', function() {
if (fail) {
// mouseout won't be fired until you move the mouse
window.setTimeout(function() {
overlay.style.display = 'block';
}, 0);
} else {
// mouseout event is fired instantly
overlay.style.display = 'block';
}
log.innerHTML += 'over' + "<br>";
}, false);
button.addEventListener('mouseover', function() {
log.innerHTML += 'over' + "<br>";
}, false);
button.addEventListener('mouseout', function() {
log.innerHTML += 'out' + "<br>";
}, false);
$(overlay).delegate(button, 'mouseover', function() {
log.innerHTML += 'over' + "<br>";
});
$(overlay).delegate(button, 'mouseout', function() {
log.innerHTML += 'out' + "<br>";
});