Вы уверены, что действительно предупреждаете , что top
? Напомним, что top
- это уже существующая глобальная переменная в размещенном в браузере JavaScript (это window.top
, окно верхнего уровня).
Обновление : Интересно, что Chrome не позволит вам неявно перезаписать top
(что, вероятно, хорошо): Демо . Просто объявите вашу переменную (всегда хорошая идея) в любой функции, в которой находится этот код (этот код равен в функции, верно?), Которая будет shadow it, и так, чтобы будет работать: Демо . E.g.:
var top = $(this).find('ul').position().top;
Важно объявить ваши переменные, чтобы не стать жертвой Ужаса неявных глобалов . И, как вы выяснили в этом случае, избегать глобальных значений всегда лучше, поскольку Chrome даже не позволит использовать top
в качестве глобального, если вы объявите его (снова для защиты window.top
).