Кажется, проблема в том, что вы связываете события, не отменяя их. Таким образом, в конечном итоге возникают множественные события, которые запускают показ и скрытие окна в зависимости от того, сколько раз происходило событие фокуса и размытия. Я не совсем уверен, почему в IE по какой-то причине происходит сбой, но в решении, похоже, слишком много движущихся частей, поэтому трудно точно определить, где он выходит из строя.
В прошлом я мог заставить этот тип вещей работать, используя атрибут, который поддерживает состояние текстового поля (сфокусировано или размыто). Попробуйте это:
<script type="text/javascript">
$(function() {
var showBox = function() {
$(".open").show();
};
var hideBox = function() {
if (!$(".open").attr("searching")) {
$(".open").hide();
}
};
$(".search").hover(showBox, hideBox);
$(".open").hover(showBox, hideBox).hide();
$("#tbSearch").focus(function() {
$(".open").attr("searching", "true");
}).blur(function() {
$(".open").removeAttr("searching");
$(".open").hide();
});
});
</script>