Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Повторное срабатывание .load() у iframe при смене его src (https://javascript.ru/forum/events/42015-povtornoe-srabatyvanie-load-u-iframe-pri-smene-ego-src.html)

vita1ii 09.10.2013 12:08

Повторное срабатывание .load() у iframe при смене его src
 
Здравствуйте.
Суть вот в чем. Есть таблица со списком игр, при клике на какую-либо игру у iframe в src подставляется адрес и при завершении загрузки [ .load() ] удаляется свойство класса ( display: none ) для того чтобы увидеть контент этого iframe.
Проблема: при первом клике на любую игру .load() срабатывает 1 раз, при клике на другую игру (тут изменятся src) .load() срабатывает дважды, 3-й клик - трижды, выбор 4-й игры - 4 раза проходит по обработчику .load().
Вопрос: В чем проблема? Как исправить?

Мой код (все алерты просто для наглядности как что работает)
alert('add iframe resource')
$(".view-sc-game iframe").attr("src",'/communitee/stat/viewgame?sc_id='+$(this).parent().attr("data-sc-id")+'&p_block=view_sc')
alert('addED iframe resource')
$('.view-sc-game iframe').load(function() {
                    alert('load function iframe resource')
                    $(this).removeClass("non_display");
                    $(this).height($(this).contents().find('html').height());
                    alert('loaded function iframe resource')
                });

Deff 09.10.2013 12:19

$('.view-sc-game iframe').one('load',function() {
                    alert('load function iframe resource')
                    $(this).removeClass("non_display");
                    $(this).height($(this).contents().find('html').height());
                    alert('loaded function iframe resource')
});

vita1ii 09.10.2013 12:26

Снимаю шляпу.
Спасибо, помогло!

Ошибки бывают редко, но вот сейчас не могли бы вы объяснить в чем была собственно ошибка? В чем разница от того что вы написали.
Спасибо.

PS Документацию по .one уже читаю

vita1ii 09.10.2013 12:31

Хотел плюсануть вам, но что-то не получилось. Я не знаю правил форума но пишет так: "Вы должны добавить отзыв кому-то ещё, прежде чем сможете снова добавить его Deff". Я даже в другой ветке кому-то плюсанул за полезный ответ, но все ровно вам не получается добавить +.

danik.js 09.10.2013 12:43

Зачем алерты, когда есть точки останова?

vita1ii 09.10.2013 12:49

Я только для форума их и запилил, думал так нагляднее будет. =)


Часовой пояс GMT +3, время: 14:09.