В Firebug $ == jQuery возвращает false, только иногда - PullRequest
9 голосов
/ 29 августа 2010

Хорошо, у меня странная проблема в Firefox. Я печатаю в консоли Firebug

$ == jQuery

Иногда он показывает true, а иногда false. Файл представляет собой пустой HTML-документ с одним тегом сценария, включая jQuery. Я обновляю страницу, нажимаю «Выполнить» в консоли и снова, иногда она возвращает true, иногда false.

В случаях, когда он возвращает ложь, $.toString() дает

function anonymous() {
    return window.console.notifyFirebug(arguments, "$", "firebugExecuteCommand");
}

Теперь вот странная вещь. Когда $ == jQuery выдает значение false, используя консоль Firebug, если я иду в адресную строку и набираю javascript:alert($ == jQuery);, оно выдает предупреждение true!

Кто-нибудь знает, что здесь происходит? Это (иногда) портит мою отладку.

Ответы [ 4 ]

3 голосов
/ 29 августа 2010

Существует встроенная функция, определенная firebug, которая присваивает $ getElementById.Я не думаю, что вы можете устранить эту «ошибку» без обновления до более новой версии Firebug, которая потенциально устранила проблему, или вручную назначить $ = jQuery.

Возможно, это результат того, что jQuery уже кэшируется, и Firebug $ переопределяет его, поскольку он срабатывает слишком быстро, или наоборот ... просто странная ошибка в отношении скорости присваивания + кэширования.

0 голосов
/ 29 августа 2010

Вы должны использовать instanceof вместо проверки на равенство.

По той причине, что вероятно, что firebug определили $ в локальной области видимости.

0 голосов
/ 29 августа 2010

Может быть много других вещей, использующих $ как символ функции / переменной. JQuery это только один из них. Firebug вероятно переопределяет $.

0 голосов
/ 29 августа 2010

Может быть, firebug использует $ для чего-то, и есть условие гонки между jquery и firebug для установки этой переменной, вы должны учитывать, что многие библиотеки javascript используют это имя переменной, если я не ошибаюсь, прототип является одним из их

...