Дублированные загрузки - Cordova/Framework7
Отредактировано: у меня есть функция для загрузки файлов и событие для прослушивания кликов, которые запускают эту загрузку
Событие:
$$('button').on('click', function() {
var media = $$(this).attr('data-url');
Download(media);
}
});
"Download" - это функция, которая задерживается, чтобы быть завершенной... Во время работы, если я нажму на другую кнопку, чтобы получить ее значение, переменная "media" получит значение первой кнопки - которая обрабатывается в "Download". "функция
Как мне это исправить?
Спасибо
2 ответа
Я решаю это так:
На моей странице есть несколько кнопок, и я думаю, что это вызывает конфликты. Итак, я создаю "динамический класс" с частью ссылки и связываю с ними событие вместо кнопки.
//My file is in this link. The absolute link to my jpg file will be catched in JSON inside here...
var link = 'https://www.myserver1.com/f/wPAU322jT36/';
var id_link_1 = link.substring(28,100); //-> wPAU322jT36/
var id_link = id_link_1.replace('/',''); //-> wPAU322jT36
Итак, я поставил его как класс в HTML:
//data-url is my .jpg file catched in JSON in link above
var html = '<button data-url="https://www.myserver1.com/myfie.jpg" class="btn btn-primary btn-lg btn-block '+id_link+'"';
Итак, я называю это внутри события
$$('.'+id_link+'').on('click', function() {
var media = $$(this).attr('data-url');
Download(media);
}
});
Так что я получил уникальные классы, которые нужно назвать. Теперь это работает:)
У меня такая же проблема с тобой, как раньше. Тогда я решил их.
Попробуй поставить .off('click')
до .on('click')
, это решит вашу проблему.
Так это будет выглядеть так:
$$('button').off('click').on('click', function() {
var media = $$(this).attr('data-url');
Download(media);
});
ИЛИ ЖЕ
Добавить off('click')
внутри вашей функции в конце.
$$('button').on('click', function() {
var media = $$(this).attr('data-url');
Download(media);
$$(this).off('click');
});