Замена тэга, или другой вариант загрузки по клику.
Здравствуйте, вырезая всё лишнее имею сейчас это, jquery - скопировал готовое решение
http://jsfiddle.net/BmFcM/ На странице очень много видео, а каждый такой айфрейм грузит по три скрипта и превьюшку. Сейчас там грузит по сути всё сразу. Нужно, что-бы показывалось только по клику. Я только начинаю изучать, пхп, не js, но похожи, так что пытался нахимичить. С гугла искал сдесь, пытался подставлять свои классы в click function после toggle normal. Обозвал все айфреймы - iflame, максимум, что получилось - айфрейм с заготовкой html документа с потерянными данными. :write: update: или в этом вообще нет смысла?) Как такое реализовать тогда? :) |
Alexander_Light,
Ты можешь не назначать сразу src у ифрейма, а только по клику. Нужный урл можно сохранить в аттрибуте data. Примерно так: <iframe src="" data-url="http://vk.com/video_ext.php?oid=-49912&id=163329178&hash=3a993b4b936e1bb3&hd=1" width="607" height="360" frameborder="0"></iframe>
$('.bla-bla-bla').click(function() {
var iframe = $(...); //берем нужный ифрейм
iframe.attr('src', iframe.data('url')); // выставляем src
});
Соответственно, как только изменился src, то автоматически браузер начнет подгружать содержимое. |
Спасибо!:thanks:
Вставил в ту же функцию по клику, своё дело выполняет
$(document).ready(function(){
$('.content-list-item-head').click(function(){
$(this).parent().children('div.content-list-item-body').toggle('normal');
var iframe = $('.video-iframe'); //берем нужный ифрейм
iframe.attr('src', iframe.data('url')); // выставляем src
return false;
});
});
Но! Грузит в src только data-url из первого iframe на странице, как указать на загрузку атрибутов только внутри дочернего iframe? А то сейчас он получается с первого берёт. И второе, менее важное - очень уж тормозит, когда он пытается загрузить и анимацию раскрытия сделать. Может загрузку отложить на несколько мс.? Да и при сворачивании теперь тормозит, и при повторном разворачивании, когда уже всё вроде загрузилось. Тут наверное дело в том, что опять выполняется подстановка атрибутов, хотя нужно только первый раз. |
Alexander_Light,
Если разметка как в примере, то нужный ифрейм получить можно так:
var iframe = $(this).parent().find('.video-iframe');
Плюс src необходимо устанавливать только один раз:
if (!iframe.attr('src')) { iframe.attr('src', iframe.data('url')); }
Если нужно, то загрузку запустить после анимации. Полный код:
$(document).ready(function () {
$('.content-list-item-head').click(function () {
var iframe = $(this).parent().find('.video-iframe');
$(this).parent().children('div.content-list-item-body').toggle('normal', function () {
if (!iframe.attr('src')) { iframe.attr('src', iframe.data('url')); }
});
return false;
});
});
|
Hoshinokoe,
Блииин, спасибище большое! Я бы копался ещё очень долго. Всё работает, спасибо ещё раз) |
| Часовой пояс GMT +3, время: 11:13. |