Максимальное количество скачиваний -> затем обновите страницу
У меня есть страница загрузки с максимальным количеством загрузок 5 для каждого файла. Каждая загрузка ссылается на download.php? Fileid. При нажатии число загрузок вычитается с одним в базе данных. Но он обновляется только тогда, когда посетитель обновляет страницу.
Теперь я думал, что jQuery поможет мне, и у меня есть это сейчас:
<span class="downloadsleft">5</span><span class="downloadLink">download file</span>
Мой jquery:
<script type="text/javascript">
$('.downloadLink').click(function() {
var currentValue = $(".amount").text();
var newValue = +currentValue - 1;
$(".amount").text(newValue);
window.open("download.php?file={/literal}{$product.bestandsnaam_hash}{literal}");
if ((".amount").text == "1")
{
location.reload();
};
});
</script>
Открытое окно работает, но перезагрузка не работает? Кто-нибудь знает эту проблему?
2 ответа
объяснение
.amount
не хорошее название класса! использование .downloadsleft
вместо!
поскольку .amount
не существует, для переменной не задано начальное значение currentValue
,
Решение
( JSFiddle)
Заменить все .amount
в вашем JavaScript
кодировать .downloadsleft
:
ПРИМЕЧАНИЕ: я также добавил parseInt()
функция в base10
сравнить количество загрузок с числом.
Javasript/ JQuery
$('.downloadLink').click(function() {
var currentValue = $(".downloadsleft").text();
var newValue = currentValue - 1;
$(".downloadsleft").text(newValue);
window.open("download.php?file={/literal}{$product.bestandsnaam_hash}{literal}");
if (parseInt(newValue,10) == 1)
{
location.reload();
};
});
Вам не хватает () в тексте
if ((".amount").text() == "1")
вам не нужно снова извлекать информацию с помощью запроса, она уже находится в var newValue:
if (newValue == 1)
изменить: ваш код будет работать только для одной загрузки на странице, потому что вы используете тот же ".amount" (я предполагаю, что вы имели в виду ".downloadsleft") для всех загрузок. Одним из решений является использование предыдущего элемента intead для определения местоположения элемента по классу:
$('.downloadLink').click(function() {
var counter = $(this).prev();
var newValue = counter.text() - 1;
counter.text(newValue);
window.open("download.php?file={/literal}{$product.bestandsnaam_hash}{literal}");
if (newValue == 1) {
location.reload();
};
});