Да, используйте var n = ...
вместо n = ...
для создания локальной переменной.
Для того, чтобы вы в настоящее время обращались к переменной n
, как к строке, вычисляемой по истечении времени ожидания, требуется глобальная переменная. Лучше, если вы определите это как функцию, которая может опираться на переменные из локальной области видимости:
setTimeout(function() { $(n).hide(); }, 150);
Демо