Повторное срабатывание .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') }); |
$('.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') }); |
Снимаю шляпу.
Спасибо, помогло! Ошибки бывают редко, но вот сейчас не могли бы вы объяснить в чем была собственно ошибка? В чем разница от того что вы написали. Спасибо. PS Документацию по .one уже читаю |
Хотел плюсануть вам, но что-то не получилось. Я не знаю правил форума но пишет так: "Вы должны добавить отзыв кому-то ещё, прежде чем сможете снова добавить его Deff". Я даже в другой ветке кому-то плюсанул за полезный ответ, но все ровно вам не получается добавить +.
|
Зачем алерты, когда есть точки останова?
|
Я только для форума их и запилил, думал так нагляднее будет. =)
|
Часовой пояс GMT +3, время: 07:11. |