Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.01.2013, 20:52
Новичок на форуме
Отправить личное сообщение для Alexander_Light Посмотреть профиль Найти все сообщения от Alexander_Light
 
Регистрация: 02.01.2013
Сообщений: 3

Замена тэга, или другой вариант загрузки по клику.
Здравствуйте, вырезая всё лишнее имею сейчас это, jquery - скопировал готовое решение
http://jsfiddle.net/BmFcM/
На странице очень много видео, а каждый такой айфрейм грузит по три скрипта и превьюшку. Сейчас там грузит по сути всё сразу. Нужно, что-бы показывалось только по клику.

Я только начинаю изучать, пхп, не js, но похожи, так что пытался нахимичить. С гугла искал сдесь, пытался подставлять свои классы в click function после toggle normal.
Обозвал все айфреймы - iflame, максимум, что получилось - айфрейм с заготовкой html документа с потерянными данными.


update: или в этом вообще нет смысла?) Как такое реализовать тогда?

Последний раз редактировалось Alexander_Light, 02.01.2013 в 20:58.
Ответить с цитированием
  #2 (permalink)  
Старый 02.01.2013, 21:50
Профессор
Отправить личное сообщение для Hoshinokoe Посмотреть профиль Найти все сообщения от Hoshinokoe
 
Регистрация: 08.01.2012
Сообщений: 253

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, то автоматически браузер начнет подгружать содержимое.
Ответить с цитированием
  #3 (permalink)  
Старый 03.01.2013, 08:04
Новичок на форуме
Отправить личное сообщение для Alexander_Light Посмотреть профиль Найти все сообщения от Alexander_Light
 
Регистрация: 02.01.2013
Сообщений: 3

Спасибо!
Вставил в ту же функцию по клику, своё дело выполняет
$(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, 03.01.2013 в 09:12.
Ответить с цитированием
  #4 (permalink)  
Старый 03.01.2013, 11:29
Профессор
Отправить личное сообщение для Hoshinokoe Посмотреть профиль Найти все сообщения от Hoshinokoe
 
Регистрация: 08.01.2012
Сообщений: 253

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, 03.01.2013 в 12:02.
Ответить с цитированием
  #5 (permalink)  
Старый 03.01.2013, 12:49
Новичок на форуме
Отправить личное сообщение для Alexander_Light Посмотреть профиль Найти все сообщения от Alexander_Light
 
Регистрация: 02.01.2013
Сообщений: 3

Hoshinokoe,
Блииин, спасибище большое! Я бы копался ещё очень долго.
Всё работает, спасибо ещё раз)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена хранимой информации в var по клику. koeshiro Общие вопросы Javascript 2 09.12.2012 17:58
Прогресс загрузки большого изображения или файла - как сделать Почемучкин Events/DOM/Window 7 19.10.2012 21:03
JSON или JSONP для запросов на другой сервер? Метод GET, для длинных сообщений? Kotakota jQuery 5 23.08.2011 23:12
Замена текста в блоках по клику, помогите новичку) langolier Я не знаю javascript 1 27.05.2009 04:13