Изменить валюту с помощью Javascript с помощью InstantSearch (Алголия) - PullRequest
0 голосов
/ 29 октября 2019

Я пытаюсь отобразить переключатели, которые меняют валюту моей поисковой системы (с 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 не принимает эти модификации ...

...