uncaught typeerror undefined не является функцией в javascript

Следующая функция устанавливает следующую ошибку: "uncaught typeerror undefined не является функцией javascript" раньше работала нормально, теперь не получается =(Помогите, пожалуйста!

$('longitud-grados').addEvent('change', function(event){
        var lg = $('longitud-grados').value;
        var lm = $('longitud-minutos').value;
        var ls = $('longitud-segundos').value;

        if((lg > 117) || (lg < 86)) $('longitud-grados').value = '';

        if(lg != '' && lm != '' && ls != ''){
            c = new Coordenada();
            l = c.gms2dec(lg, lm, ls, 'w');
            $('longitud').value = l.decimal;
        }
    });

1 ответ

Решение

Это потому что $ не определено. Я посмотрел на вашу веб-страницу

> $('longitud-grados').
Uncaught SyntaxError: Unexpected token } VM1196:732
> $('longitud-grados')
Uncaught TypeError: undefined is not a function VM1555:2
> $
undefined
> MooTools
Object {version: "1.4.5", build: "ab8ea8824dc3b24b6666867a2c4ed58ebb762cf0", More: Object, lang: Object}
> document.id
function (D,F,E){if(D&&D.$family&&D.uniqueNumber){return D;}var l=typeOf(D);return(e[l])?e[l](D,F,E||document):null;} 

Итак, по какой-то причине ваш $ не определен - либо сделайте $ = document.id; или измените ваш скрипт для использования document.id('longitud-grados');

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

(function($){
    ...
    $('someid'); // will work
}(document.id));

имейте в виду, у вас также есть jQuery на странице, делая $ = document.id может вызвать проблемы с вашими скриптами jQuery, если он не использует .noConflict() Режим

Другие вопросы по тегам