Переключение между вкладками span для отображения другой ошибки HTML Iframe

#javascript #html #css #tabs #electron

#javascript #HTML #css #вкладки #electron

Вопрос:

Я создаю приложение electron и создал меню div с разделами в нем, которые содержат свой собственный HTML-фрейм. Я хочу иметь возможность щелкнуть по определенному span и отобразить его Iframe. Прямо сейчас, когда у меня более одного Iframe в HTML-файле, они отображаются друг над другом. Вот мой HTML:

 <div class="menu">
    <img src="./images/group-30.png" class="logo"></img>

    <span class="menu_spans" id="tasks">
        <img src="images/group-47.png" class="tasks-img"></img>
        <!--<iframe src="tasks.html"></iframe>-->  
    </span>

    <span class="menu_spans" id="add-tasks">
        <img src="images/group-55.png" class="add-tasks-img">
        <iframe src="addTasks.html" scrolling="no" allowtransparency="yes" style="width:1020px; height: 574px; position: relative; top:-350%; left: 57px; border:none;"></iframe>
    </span>

    <span class="menu_spans" id="billing">
        <img src="images/group-60.png" class="billing-img">
        <!--<iframe src="billing.html" scrolling="no" allowtransparency="yes" style="width: 1020px; height: 574px; position: relative; top:-269px; left: 57px; border: none;"></iframe>-->
    </span>

    <span class="menu_spans" id="proxies">
        <img src="images/group-61.png" class="proxies-img">
        <!--<iframe src=""></iframe>-->
    </span>

 etc...
  

Я пробовал что-то подобное, но это не работает:

 let menu_spans = document.querySelectorAll(".menu_spans");

for (var i = 0; i < menu_spans.length; i  ) {
    menu_spans[i].addEventListener('click', () => {
        console.log(this.id);
    });
}
  

Некоторое время назад я уже кодировал это в jQuery, но я не уверен, как это сделать в обычном js.

Любая помощь приветствуется, спасибо!

Комментарии:

1. что вы подразумеваете под «… он отображает их друг над другом»? Я думаю, это было бы скорее проблемой css.

Ответ №1:

Вы могли бы использовать что-то вроде этого:

 let menu_spans = document.querySelectorAll(".menu_spans");

for (var i = 0; i < menu_spans.length; i  ) {
  menu_spans[i].addEventListener('click', smth, false);
}

function smth() {
  console.log(this.id);
}
  

Комментарии:

1. работает, но как я могу отказаться от того, чтобы фреймы iframe перекрывали друг друга и отображались только тогда, когда выбран их диапазон, а цвет фона менялся для выбранного диапазона?

Ответ №2:

Вот код JavaScript, который правильно считывает идентификатор выбранного элемента, так что вы можете использовать идентификатор элемента для настройки iframe в будущем.

 let menu_spans = document.querySelectorAll(".menu_spans");

for (var i = 0; i < menu_spans.length; i  ) {
    menu_spans[i].addEventListener('click', (event) => {
           if (event.currentTarget.nodeName === "SPAN") {
           console.log(event.currentTarget.id);
            return true;
           }
    });
}
  

Ссылка на fiddle: fiddle

Комментарии:

1. работает, но как я могу отказаться от того, чтобы фреймы iframe перекрывали друг друга и отображались только тогда, когда выбран их диапазон, а цвет фона менялся для выбранного диапазона?