Поскольку я не видел обновления от Энди до сих пор, я нашел ... довольно ужасный способ сделать это (но я принял его ответ, так как он намного приятнее моего).
<script type="text/javascript">
$(document).ready(function(){
$("img").click(function () {
var videoID = $(this).attr("id");
$(this).replaceWith("<object class=\"yt\" width=\"445\" height=\"364\"><param name=\"movie\" value=\"http://www.youtube.com/v/" + videoID + "&hl=en&fs=1&color1=0x3a3a3a&color2=0x999999&border=1\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/" + videoID + "&hl=en&fs=1&color1=0x3a3a3a&color2=0x999999&border=1\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"445\" height=\"364\"></embed></object>");
});
});
</script>
Используется совместно со следующим html:
<dl>
<dt>Thoughts of Sacrament</dt>
<dd><img src="img/H5ZEYFgmfYo.png" id="H5ZEYFgmfYo" class="yt" /></dd>
<dt>Sanity falling</dt>
<dd><img src="img/2ieLb3RAblA.png" id="2ieLb3RAblA" class="yt" /></dd>
</dl>
Мое решение, берет атрибут #id
из изображения, по которому щелкнули, и затем вставляет его в код replaceWith()
. Это работает, после моды. Но скриншот -> crop -> save as video-id.png - утомительный, если не сказать больше. Я думаю, что я, вероятно, оставлю свое решение - как жалкую гордость, если ничего больше - но я попытаюсь объединить это с подходом jYoutube.
Если это не сработает, тогда я буду использовать ответ Энди.
<ч />
В качестве обновления я адаптировал вещи, чтобы они были немного более изящными, с помощью jQuery animate()
:
<script type="text/javascript">
$(document).ready(function(){
$("img").click(function () {
var videoID = $(this).attr("id");
$(this).animate({
width: "445px",
height: "364px"
}, 600, function() {
$(this).replaceWith("<object id=\"" + videoID + "\" class=\"yt\" width=\"425\" height=\"344\"><param name=\"movie\" value=\"http://www.youtube.com/v/" + videoID + "&hl=en&fs=1&color1=0x3a3a3a&color2=0x999999\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/" + videoID + "&hl=en&fs=1&color1=0x3a3a3a&color2=0x999999\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"425\" height=\"344\"></embed></object><span class=\"close\"><a href=\"#\">x</a></span>");
});
});
});
</script>
Кроме того, я генерирую <span class="close"><a href="#">x</a></span>
, который, как мы надеемся, должен с обработчиком щелчков сжимать флэш-видеообъект обратно и заменять его исходным .png
.
Это ... если я смогу понять, почему jQuery не позволяет ему иметь событие $(this).click();
...
Иногда я просто хотел бы знать, когда остановиться ... любая помощь приветствуется ... =)