Javascript не работает в Firefox - панели значков не кликабельны - PullRequest
0 голосов
/ 26 мая 2018

Я написал веб-страницу, которая отлично работает в Chrome, но не в Firefox.Предполагается, что на кнопках отображаются значки, которые можно нажимать, и вставляйте содержимое в элемент div.

Вот отдельная часть, которая не работает:

HTML:

<div class="icon-bar" id="iD-icon-bar">
        <button id="home" class="activeIcon" style="margin-left: 25%"><i id="homeIcon" class="fa fa-home" style="color: green;"></i></button> 
        <button id="search" ><i id="searchIcon" class="fa fa-search" style="color: green;"></i></button> 
        <button id="contact" ><i id="contactIcon" class="fa fa-envelope" style="color: green;"></i></button> 
        <button id="globe" ><i id="globeIcon" class="fa fa-globe" style="color: green;"></i></button>
      <div id="iconBar">
        <div id="iconBarHome" style='font-family:  Raleway; text-align: center; font-size: 25px; margin: auto; width: 870px; background-color: #609b58'>
            <br><h3>Vertical Icons</h3>
            <br><h5>This is just some placeholder container, to show what you can do with vertical tabs.</h5>
            <br><h6 style='height: 50px;'>made by devdoweb.com</h6>
        </div>

    </div>

JavaScript:

$ ("# search"). Click (function () {

$("#iconBarHome").html("<br><h3>Search</h3>\n\
<br><h5>This is just some placeholder container,\n\
to show what you can do with vertical tabs.</h5>\n\
<br><h6 style='height: 50px;'>made by devdoweb.com</h6>"); 


var ids = ["home", "search","contact", "globe"];
for (var i = 0; i < 4; i++)   {
document.getElementById(ids[i]).className = "inactive";
$("#search").addClass("activeIcon");

} 

});

$ ("# home"). click (function () {

$("#iconBarHome").html("<br><h3>Vertical Icons</h3>\n\
<br><h5>This is just some placeholder container,\n\
to show what you can do with vertical tabs.</h5>\n\
<br><h6 style='height: 50px;'>made by devdoweb.com</h6>"); 


var ids = ["home", "search","contact", "globe"];
for (var i = 0; i < 4; i++)   {
document.getElementById(ids[i]).className = "inactive";
$("#home").addClass("activeIcon");

} 

});

$ ("# contact"). Click (function () {

$("#iconBarHome").html("<br><h3>Contact</h3>\n\
<br><h5><a href='mailto:hoffmannma84@googlemail.com'>send me an email</a></h5>\n\
<br><h6 style='height: 50px;'>made by devdoweb.com</h6>"); 


var ids = ["home", "search","contact", "globe"];
for (var i = 0; i < 4; i++)   {
document.getElementById(ids[i]).className = "inactive";
$("#contact").addClass("activeIcon");

} 

});

$ ("# globe"). Click (function () {

$("#iconBarHome").html("<br><h3>Weblinks</h3>\n\
<br><h5><a href='https://www.w3schools.com/' target='_blank'>Webdesign tutorials</a></h5>\n\
<br><h6 style='height: 50px;'>made by devdoweb.com</h6>"); 


var ids = ["home", "search","contact", "globe"];
for (var i = 0; i < 4; i++)   {
document.getElementById(ids[i]).className = "inactive";
$("#globe").addClass("activeIcon");

} 

});внутренний html должен идти в div с идентификатором divMainText, который очень хорошо работает в chrome, но совсем не работает в firefox.Кнопки просто не кликабельны.

Я довольно новичок в html, css и javascript и не знаю, делаю ли я что-то совершенно не так или что-то в этом роде.Я очень хочу заглянуть в php (никогда не делал), если это может быть решением для таких проблем.

Веб-сайт можно найти здесь

Если выпрокрутите вниз до вертикальных вкладок, то есть соответствующего раздела.

1 Ответ

0 голосов
/ 26 мая 2018

Ваш код JavaScript очень запутан.Обратите внимание на следующие моменты:

  1. Вы используете библиотеку jQuery.Итак, почему вы использовали чистый JavaScript в своем коде?
  2. В коде html внутри тега <button> находится тег <i>, который имеет аналогичный тег id с тегом <button>.Атрибут id указывает уникальный идентификатор для элемента HTML. Таким образом, значение должно быть уникальным в документе HTML.
  3. Вы использовали event в своем коде JavaScript.Но это не подходит для функции.События HTML - это вещи , которые происходят с элементами HTML.Когда JavaScript используется на страницах HTML, JavaScript может реагировать на эти события.
  4. Нет элементов с идентификатором divmain среди элементов.Итак, getElementById() Метод не может вернуть ни одного элемента.
  5. И много других ошибок ...

function setActive ( e ) {
    $('[id]').each(function(  ) {
        document.getElementById(this.id).className = "inactive"
    });

    var ident = e.target.id;

    document.getElementById( ident ).className += " activeIcon";

    switch( ident ) {
        case 'home':
            $( '#divMainText' ).html( '<br><h3>Vertical Icons</h3><br><h5>This is just some placeholder container, to show what you can do with vertical tabs.</h5><br><h6 style="height: 50px">made by devdoweb.com</h6>' );
            break;
        case 'search':
            $( '#divMainText' ).html( '<br><h3>Search Section</h3><br><h5>No search function yet.</h5><br><h6 style="height: 50px">made by devdoweb.com</h6>' );
            break;
        case 'contact':
            $( '#divMainText' ).html( '<br><h3>Contact</h3><br><h5><a href="mailto:hoffmannma84@googlemail.com">Send me an email</a></h5><br><h6 style="height: 50px">made by devdoweb.com</h6>' );
            break;
        case 'globe':
            $( '#divMainText' ).html( '<br><h3>Weblinks</h3><br><h5><a href="https://www.w3schools.com/" target="_blank">Webdesign tutorials</a></h5><br><h6 style="height: 50px">made by devdoweb.com</h6>' );
            break;
    }

    document.getElementById('divMainText').className = "textMain";
}
.icon-bar {
    width: 870px;
    height: 80px;
    margin: 0 auto;
    padding-top: 50px;
    background: #a1abba url("http://www.devdoweb.com/lake01.jpeg") 50% 0 no-repeat
}
.icon-bar button {
    float: left;
    width: 11%;
    text-align: center;
    padding: 15px 0;
    transition: all 0.3s ease;
    color: black;
    font-size: 36px;
    border-radius: 15px;
    background-color: rgba(88, 132, 82, 0.5);
    outline: none
}
.icon-bar button:hover {
        background-color: #1f9b71
}
.activeIcon {
    background-color: rgba(88, 132, 82, 1);
    transform: translateY(4px)
}
.textMain {
    text-align: center;
    width: 870px;
    margin: auto;
    font:  normail 25px Raleway;
    background-color: #609b58
}
.inactive {
    background-color: #609b58
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="icon-bar">
    <button id="home" onclick="setActive(event)" class="activeIcon" style="margin-left: 25%"><i class="fa fa-home" style="color: green;"></i></button>
    <button id="search" onclick="setActive(event)"><i class="fa fa-search" style="color: green;"></i></button>
    <button id="contact" onclick="setActive(event)"><i class="fa fa-envelope" style="color: green;"></i></button>
    <button id="globe" onclick="setActive(event)"><i class="fa fa-globe" style="color: green;"></i></button>
</div>

<div class="textMain" id="divMainText">
    <br>
    <h3>Vertical Icons</h3>
    <br>
    <h5>This is just some placeholder container, to show what you can do with vertical tabs.</h5>
    <br>
    <h6 style="height: 50px">made by devdoweb.com</h6>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...