Замена тэга, или другой вариант загрузки по клику.
Здравствуйте, вырезая всё лишнее имею сейчас это, 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, время: 03:46. |