javascript - поменяйте местами ссылку для скачивания

0

У меня есть простой html-сайт, где наверху находится основное изображение с кнопкой загрузки. Загрузка работает с атрибутом загрузки html5.

Теперь у меня есть миниатюры под основным изображением, которое при нажатии заменяет основное изображение миниатюрным изображением.

Следующий вопрос: я использую один и тот же код javascript, чтобы также заменить URL-адрес кнопки загрузки с помощью эскиза эскизов, но при нажатии кнопки загрузки он по-прежнему открывает ссылку с жестким кодом для загрузки из html вместо использования замененного URL-адреса.

HTML

<div class="dwnldcntnr">
 <img src="imgage1.jpg" alt="Image Title 1" />
  </div>

<div id="btncntnr">
 <a href="imgage/image1.jpg" download="image1.jpg">
 <button id="btn">Download</button></a>
  </div>

<div class="itemcntnr">
 <a href="image2.jpg" title="2.jpg">
 <img src="image2.jpg" />
  </a></div>

JS-код для замены URL-адреса для загрузки с эскизом эскиза

    <script type="text/javascript">
$(document).ready(function() {
    $('.itemcntnr a').click(function() {
        var path = $(this).attr('href');
        $('#btncntnr a').attr('href', path)
                             .attr('download', $('a', this).attr('title'));
        return false;
    });
});
</script>
  • 0
    Я думаю, $('a', this).attr('title') должно быть $(this).attr('title') . И, поскольку вы используете HTML5, перейдите к атрибутам данных для хранения ваших данных api.jquery.com/data . название не для хранения переменных

2 ответа

0

Не помещайте жестко закодированный href для ссылки в html вместо этого, попробуйте добавить его на $(document).ready
Кроме того, я согласен с Арен, что вы никогда не должны поставить button внутри a теге. Вместо того, чтобы применить стили к a теге, так что это будет выглядеть как кнопка

  • 0
    здесь есть жестко запрограммированная ссылка, поскольку при открытии страницы основное изображение должно иметь свой URL-адрес для загрузки.
  • 0
    Это верно, это требует URL-адреса загрузки. Но будучи жестко закодированным, он может быть кэширован, попробуйте поместить его в функцию document.ready как $('#btncntnr a').attr('href', 'imgage/image1.jpg')
Показать ещё 9 комментариев
0

Попробуйте заменить весь элемент DOM.

Я не думаю, что вы должны гнездиться на button внутри a теге, так как они оба элемента, которые имеют встроенную интерактивность. Скорее всего, вы столкнетесь с ошибками синтаксического анализа HTML в более ранних версиях IE.

$('.itemcntnr a').click(function() {
    var $this = $this.clone().empty().html('Download');
    $('#btncntnr a').replaceWith($this);
    return false;
});
  • 0
    спасибо за помощь, однако замена js не решает проблему. Я рассмотрю вопрос об изменении кнопки внутри, спасибо за совет.
  • 0
    @DM - Извините, я только что понял, что в моем коде произошла ошибка (я ссылался на $(this) вместо созданной переменной $this ). Попробуйте еще раз с выше.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню