Без запуска вашего кода, я собираюсь догадаться, что вторая функция выдает ошибку и никогда не будет выполнена. Вы определили padding
как локальную переменную в функции first , но вторая функция не знает об этом. Он ищет padding
в своей области видимости, не находит его, ищет его в глобальной области видимости, не находит его и выдает исключение.
Запустите Firebug в Firefox, чтобы узнать, прав ли я ... Если да, у вас есть пара вариантов:
- Сделать
padding
глобальным. Вы должны быть в состоянии сделать это, просто удалив часть var
из ее объявления. Но глобальные переменные довольно условны, и они будут полагаться на функции, которые зависят от их вызова в ожидаемом порядке (in1 -> out1 -> in2 -> и т. Д.), И, хотя это, вероятно, не гарантируется.
- Перезагрузите свойство
margin
из элемента в каждой функции. Это то, что я бы сделал, даже если это менее эффективно.
(линия прерывателя, чтобы заставить SO отформатировать это ...)
$("nav li ul li").hover(
function() {$(this).find("> a").animate({ paddingLeft: load_padding() + 5}, 200);},
function() {$(this).find("> a").animate({ paddingLeft: load_padding() - 5}, 200);}
)
Надеюсь, это поможет!
PS: Надеюсь, с этим форматом все в порядке - этот предварительный просмотр убивает его ...
PPS: Это не так, но я понял это.