Синтаксическая ошибка js при вызове обратного вызова при наведении курсора

StackOverflow https://stackoverflow.com/questions/1401743

Вопрос

У меня есть некоторый код JavaScript, который создает тег img с обратным вызовом при наведении курсора мыши и добавляет тег img на страницу. Проблема заключается в том, что синтаксическая ошибка JavaScript возникает (в консоли Firefox) всякий раз, когда вызывается обратный вызов. <р> Этот код демонстрирует проблему ...

    
        var imgUrl = 'http://sstatic.net/so/img/logo.png';
        var img = document.createElement('img');
        img.setAttribute('src', imgUrl);
        img.setAttribute('onmouseover', function() {
            alert('mouseover ' + imgUrl);
        });
        document.body.appendChild(img);
    

Синтаксическая ошибка возникает даже тогда, когда функция обратного вызова является пустой функцией. <р> Может кто-нибудь объяснить, что вызывает синтаксическую ошибку и как ее исправить? <р> (Я использую FF 3.5.2 на Win XP.)

Это было полезно?

Решение

Вы передаете функцию, в которой ожидается строка. Попробуйте вместо этого:

    var imgUrl = 'http://sstatic.net/so/img/logo.png';
    var img = document.createElement('img');
    img.src = imgUrl;
    img.onmouseover = function() {
        alert('mouseover ' + imgUrl);
    };
    document.body.appendChild(img);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top