2011-02-19 1 views
4

Я использую следующий код, чтобы создать элемент изображения, загрузить его, а затем добавить в статью при загрузке.Как создать и добавить изображение с помощью Javascript/jQuery?

$('<img />') 
    .attr('src', 'image.png') //actually imageData[0].url 
    .load(function() { 
    $('article').append($(this)); 
    alert('image added'); 
    }); 

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

<img src='image.png' > 

Почему браузер удаления вперед слэш и как его остановить?

UPDATE: Спасибо всем, кто отметил, что это не слэш, что проблема (школьный день каждого дня), так что это может быть тогда? Вот живой пример http://chris-armstrong.com/inspiration/?username=behoff

UPDATE 2: Ok, так что кажется, что я дебил для не испытывая это с другими изображениями, так как этот вопрос, кажется, с тестовым изображением я использовал (http://img.ffffound.com/static-data/assets/6/dc01f803819405bfe160459021cfe6cc57766f9b_m.jpg). Странно, потому что он загружается, когда вы нажимаете на URL-адрес ... но в любом случае, спасибо всем вашим помощникам, я узнал кое-что!

+1

ли вы указать правильный путь? Также вы не переворачиваете 'image.png' в кавычки. – Sarfraz

+2

В зависимости от типа документа может потребоваться косая черта. Также, какой инструмент вы используете для проверки документа, это не означает, что он отображает DOM точно так, как он написан. Существует ли изображение? Вы должны передать значение в строке: '.attr ('src', 'image.png')' и, возможно, перед этим нужно добавить косую черту: '.attr ('src', '/image.png') '. Проверьте путь. –

+0

Я думаю, что 'article' является либо' id', либо 'class' .. не так ли? –

ответ

3

На основании предоставленной информации, мы знаем следующее:

  • Изображение успешно добавлена.

  • Изображение успешно загружено (в противном случае вы не получили бы alert()).

Либо у вас есть совершенно прозрачное изображение (не вероятно, конечно), или я бы поспорить, что ваш CSS как-то предотвратить его дисплей.

Вот пример использования CSS, который вы закомментировали в своей демонстрации.

http://jsfiddle.net/JxhaR/(Нет видимого изображения)

В частности, culpret кажется:

display: -webkit-box; 

Когда я вывожу, что изображение отображается.

http://jsfiddle.net/JxhaR/1/(изображение видно.)

+1

+1 для действительно следственных навыков :) –

+0

ХА, спасибо, как маловероятно, как кажется, получается тестовое изображение (http://img.ffffound.com/static-data/assets/6/dc01f803819405bfe160459021cfe6cc57766f9b_m.jpg) Я был использование кажется проблемой ... когда я пытался с другими изображениями в массиве, они выглядят просто отлично.Причудливо, потому что изображение загружается, когда вы переходите к его URL-адресу –

1

Попробуйте это:

$('<img />') 
    .attr('src', 'image.png') 
    .append('article') 
    .load(function(){ 
     alert('image added'); 
    }); 
+1

Если есть, то это должно быть 'appendTo'. –

+0

спасибо, но я боюсь, что, похоже, ничего не добавлено к статье –

+0

А, appendTo действует так же, как мой пример, но снова изображение не появляется, потому что удаленная коса удалена. –

1

При осмотре элемента, вы не видите его так, что он был добавлен. Независимо от того, добавляются ли элементы как HTML-код или как элементы (как в этом случае), когда вы проверяете код, который вы ищете, код, созданный из этого элемента, вы не смотрите на код, который использовался для добавления элемента.

Когда вы используете $('<img />'), на самом деле это делает document.createElement('img'), поэтому нет HTML-кода, где конечная косая черта может или не может присутствовать. Элемент создается как объект DOM, он не создан из HTML-кода.

Таким образом, причина, по которой изображение не появляется, заключается не в том, что в теге отсутствует конечная косая черта.

Вероятная причина заключается в том, что изображение на самом деле не существует, где браузер ищет его, то есть либо файл отсутствует, либо URL-адрес неверен.

+0

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

+0

Хорошо, я поверю тебе, что это не косая черта: D так что это может быть? Пример жизни приведен здесь http://chris-armstrong.com/inspiration/?username=behoff –

+0

@Chris Armstrong: Когда я тестирую, что в Firefox, IE, Opera и Safari изображение отображается просто отлично. – Guffa

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

  • Нет связанных вопросов^_^