@game802

Как отследить изменение переменной?

Добрый день, уважаемые знатоки. По ходу работу, у меня возник следующий вопрос:
При клике на input, у меня появляется модальное окно со встроенным iframe.
В этом встроенном iframe есть картинки, при клике на одну из которых, ссылка(этой картинки) записывается в переменную.
$('iframe').contents().find('.uploadfile').on('click', function () {
  url = $(this).attr('href');
});

Далее, у меня есть input(а их на странице много), в который и должна эта переменная перелезть...
И в итоге у меня получается вот такой вот гавнокодец:
$('.slider_url_image input').on('click', function() {
  $('iframe').contents().find('.uploadfile').on('click', function () {
    url = $(this).attr('href');
  });
  
  $(this).val(url);
});

Большая проблема в том, что $(this).val(url); отработает только один раз, так как мы считываем click.
Так вот... каким образом мне отследить изменение переменной и передать ее в нужный input?
Буду рад любой помощи! Большое спасибо!
  • Вопрос задан
  • 2576 просмотров
Решения вопроса 1
bob_cody
@bob_cody
var url;

$('iframe').contents().find('.uploadfile').on('click', function() {
  url = $(this).attr('href');
});

$('.slider_url_image input').on('click', function() {
  $(this).val(url);
});


Нажали на .uploadfile в iframe - записали в общую область видимости url значение её атрибута href.
Нажали на '.slider_url_image input' - взяли значение из общей области видимости и записали в value.
Если нужно хранить только одно значение href, то этого хватит.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Stalker_RED
@Stalker_RED
$('input').on('change', function(){ ... }) Чем вам не угодил?
Ответ написан
@AlexWolfGod
Попробуй вот это: https://github.com/DmitryTitov89/FLOSS

Библиотека как раз дает возможность отслеживать и навешивать функции на изменения переменных.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы