Проблема с добавлением нового элемента IMG, обернутого в DIV, в браузере Opera - PullRequest
0 голосов
/ 24 января 2011

Я столкнулся со странной проблемой при тестировании своего скрипта в браузере Opera.Одна из задач скрипта - получить изображения больших пальцев с YouTube и поместить их в контейнер <DIV>.Поэтому я делаю следующее:

$ytbID = $ytbURL.match("(.+?)(\/v/)([a-zA-Z0-9_-]{11})+");
$ytbImg = "http://img.youtube.com/vi/"+$ytbID[3]+"/2.jpg";

//building container for youtube image
$(this).before('<div class="youtoobin" align="left"></div>');
$(this).prev(".youtoobin").append('<div class="thumby" style="background-image:url(' + $ytbImg +'); width:120px;height:90px;cursor:pointer;"><img style="margin:31px 38px;" src="/myscripts/mini-play.png"/></div>');

Теперь странная вещь в Opera, что иногда она работает, а иногда нет, я имею в виду, что иногда append() возвращает null.Он работал безупречно во всех других браузерах, с которыми я тестировал (FF, Chrome, IE 6,7,8).Я просто не могу понять, есть ли проблема с append() с Opera или со мной?

Спасибо за помощь.

Сэм

1 Ответ

1 голос
/ 24 января 2011

Может быть проблема с синхронизацией (добавляемый вами div не готов, когда вы пытаетесь вставить в него контент), что это дает:

var $div = $('<div class="youtoobin" align="left"></div>');
$(this).before($div);
$div.append('<div class="thumby" style="background-image:url(' + $ytbImg +'); width:120px;height:90px;cursor:pointer;"><img style="margin:31px 38px;" src="/myscripts/mini-play.png"/></div>');
...