2014-01-17 4 views
2

У меня есть то, что мне кажется простым назначением переменной, не работающим.Простое присваивание переменной не работает

Этот код находится в jQuery, для контекста см. here.

Я звоню:

$('#foo').on('someEvent', eventHandlerFn); 

И я получаю эту проблему в функции JQuery on. Вот отправная точка:

enter image description here

Как вы можете видеть из консоли под кодом, selector, установлен мой eventHandlerFn и переменная fn не определена. Это так, как ожидалось.

В строке 3509 значение selector оценивается в fn. Таким образом, значение fn должно быть таким же, как значение selector, нет?

См. Ниже - selector определяется, как и ожидалось, но fn по-прежнему не определено. Зачем?

enter image description here

Конечным результатом является то, что мой обработчик события никогда не зарегистрирован.

+0

Вы передаете переменную eventHandlerFn' в качестве параметра .. что это такое? –

+0

Fiddle please .. –

+0

Пожалуйста, разместите свой код в своем вопросе. – j08691

ответ

1

Это, как представляется, проблема с отладчиком в Chrome - либо материал, проблема или просто нюанс отладчик, который я не понимаю. fn имеет значение в конце вызова, но не там, где точка останова.

1

Я не вижу никаких проблем с этим jsFiddle. Не стесняйтесь редактировать jsFiddle, чтобы он больше походил на ваш код.

Вы можете попробовать положить в console.log(fn); после строки 3510 и повторного использования? Может быть, это просто проблема с отладчиком?

+0

Спасибо за скрипку. Я смог воспроизвести проблему даже с этой скрипкой - см. Мой комментарий в ответ Габи. –

+0

@RoyTruelove Это очень странно, я использую этот jsFiddle, а также задаю точку останова в строке 41, fn определен. Какая ошибка на скриншоте (маленький x в верхнем правом углу - возможно, не связан). Вот мой скриншот - http://i.imgur.com/C9vDtpG.png – lebolo

+0

Спасибо lebolo - это была ошибка ajax. –

2

Код хорошо работает, как показано в следующих двух экранов (речь идет о том, как хром устанавливает контекст для консоли)

Это выглядит как консоль имеет доступ к переменной во время определения (в в этом случае передаваемые параметры), а не живые ценности, как вы запустите код

Перед свопа

Before running the line

После обмена

After running the line

+0

Спасибо, Габи, не видя этого. Я использовал скрипту, связанную ниже, и, пройдя строку 41, fn все еще не определена, но селектор не является (см. Изображение, связанное ниже). Очень странно. http://jsfiddle.net/9xe8r/ и http://i.imgur.com/ote1Ghg.png –

+0

@RoyTruelove какая хром версия? –

+0

Я на последнем месте: 32.0.1700.76 m –

Смежные вопросы