Я пытаюсь отобразить переключатели, которые меняют валюту моей поисковой системы (с Algolia). Но я не могу изменить отображение с none
на block
.
Код моего JS-файла с InstantSearch:
searchDemo.addWidget(
instantsearch.widgets.infiniteHits({
container: '#infinitehits-container-d',
showMoreLabel: "Plus de résultats",
templates: {
item: function (item) {
return '<a class="link-item" href="/demo/' + item.cars_getroute + '">' +
'<div class="img__container">' +
'<img class="infinitehits__img" src="' + item.img_url + '">' +
'</div>' +
'<div class="right-hit__content">' +
'<div class="cote_actual_eu" id="cote-actual-eu">' + item.cote_actual.cote_actual_eu.toLocaleString('fr-FR', { style: 'currency', currency: 'EUR', minimumFractionDigits: 0, maximumFractionDigits: 0 }) + '</div>' +
'<div class="cote_actual_usd" id="cote-actual-usd" style="display:none">' + item.cote_actual.cote_actual_usd.toLocaleString('en-US', { style: 'currency', currency: 'USD', minimumFractionDigits: 0, maximumFractionDigits: 0 }) + '</div>' +
'</div>' +
'</a>';
}
}
}),
);
Переключатель HTML:
<div class="currency__dropdown--body">
<div class="currency__euro">
<img src="/assets/images/icons/euro.png" alt="Euro sign">
<label for="euro">Euro
<input type="radio" name="currency" value="euro" id="euro-radio" class="euro_radio" checked="checked">
</label>
</div>
<div class="currency__dollar">
<img src="/assets/images/icons/dollar.png" alt="Dollar sign">
<label for="dollar">Dollar
<input type="radio" name="currency" id="dollar-radio" class="dollar_radio" name="dollar">
</label>
</div>
И JS, чтобы вызвать изменение валюты:
// Radio button currency
let radioButtonEu = document.querySelector(".euro_radio");
let radioButtonUsd = document.querySelector(".dollar_radio");
//Search cote actual
let coteActualSearchEu = document.querySelectorAll(".cote_actual_eu")
let coteActualSearchUsd = document.querySelectorAll(".cote_actual_usd")
if (radioButtonEu || radioButtonUsd) {
radioButtonEu.addEventListener("click", currencyEu);
radioButtonUsd.addEventListener("click", currencyUsd);
if (radioButtonUsd.checked = true) {
//app Search currency
function currencyUSd() {
if (coteActualSearchUsd) {
coteActualSearchEu.forEach(y => y.style.display = "none");
coteActualSearchUsd.forEach(y => y.style.display = "block");
}}}
Я уменьшил код, у меня та же функция для валюты евро, но она не работает, когдаЯ нажимаю радио-кнопку с валютой USD. В чем проблема ? Может быть, InstantSearch не принимает эти модификации ...