Возникла проблема с получением определенного события JavaScript для работы в Firefox - PullRequest
1 голос
/ 29 января 2011

Итак, я создал небольшой веб-сайт для демонстрации фотографий и информации о хобби друга.Главная страница «Изображение» представляет собой набор миниатюр с одним центральным полноразмерным изображением, и я разработал его так, чтобы при щелчке по миниатюре изменялась большая картинка и все описания для нее, соответствующие этому миниатюре.Это пример изображения, остальные точно такие же, за исключением разных имен (star2, star3, что-то вроде этого), поэтому событие onclick является причиной Javascript.Это работает в Chrome, Opera и IE, но ничего не делает в Firefox.И я знаю, что Javascript включен, потому что у меня есть другие мелочи, использующие Javascript (например, несколько кнопок в верхней части страницы, чтобы изменить размер центрального изображения), и они работают.Так что же делает Firefox, чтобы это не запускалось?

<img class="thumbnail" onclick="descriptionSwap('star1'); titleSwap('star'); imageSwap('images/star1.jpg');" id="star1" title="Click me!" src="images/small_star1.jpg"/>

Мне не пришло в голову, что проблема заключается в самом коде, так как я знаю, что он работает в других браузерах, я думал, что это будетсобытие onclick () в тегах img, но вот функции, которые я использую:

//Changes the center image
function imageSwap(newSource) {
document.getElementById('centerimage').src = newSource;
}
//Changes the title of the picture
function titleSwap(newTitle) {
if (newTitle=='star') {
    pictureTitle.innerHTML= 'Stars';
}
}
//Changes the description
function descriptionSwap(newDescription) {
if (newDescription=='star1') {
        pictureDescription.innerHTML='
        //Big long description, cut it out to save room here.
        ';
}
}

У меня есть несколько <p> тегов, настроенных с помощью id "pictureTitle" и "pictureDescription", что и является innerHTML.указывает на функции.

О, не важно, что я исправил это, спасибо Фредерику Хамиди за то, что он рассказал мне о консоли ошибок.Firefox сказал мне, что строка pictureDescription.innerHTML была неправильной, и теперь это кажется настолько очевидным, что я даже не знаю, почему я так написал.Когда я установил его на document.getElementById('pictureDescription').innerHTML, это устранило проблему, и мне пришлось сделать то же самое с функцией pictureTitle.Спасибо, ребята!

Ответы [ 2 ]

0 голосов
/ 30 января 2011

Даже если ваша проблема решена. Вы рассматривали JQuery?

<!doctype html>
<html lang="pt-br">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <style type="text/css">
            body {background-color: #2E2E2E}
            img {margin:auto}
            em {margin:auto;width:1280px;color:#B2B2B2}
        </style>
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
        <script type="text/javascript">
            $(function(){
                $('.thumbnail').live('click',function(){
                    $(this).attr('src', 'http://automodifiedesign.com/wp-content/uploads/2010/11/Black-Lamborghini-Ankonian-Concept-rear-view-2.jpeg');
                    $(this).attr('title', 'New Title');
                    $(this).attr('alt', 'New alternate description');
                    $('em.thumbnail').text('Lamborghini Ankonian Concept Rear View');
                });
                $('.thumbnail').css({'display':'block'});
            });
        </script>
        <title>Lamborghine Ankonian Concept!</title>
    </head>
    <body>
        <img class="thumbnail" id="star1" alt="alt description" title="Click me!" src="http://automodifiedesign.com/wp-content/uploads/2010/11/Black-Lamborghini-Ankonian-Concept-rear-view-3.jpg"/>
        <em class="thumbnail">Lamborghini Ankonian Concept!</em>
    </body>
</html>
0 голосов
/ 29 января 2011

Функция изменила теги <p id="pictureDescription"> следующим образом:

pictureDescription.innerHTML="description";

, и она должна была сделать это так:

document.getElementById('pictureDescription').innerHTML="description";

Другие браузеры смирились с этим дурачеством иисправил мою ошибку на заднем плане, но у Firefox были шары, чтобы сказать мне, чтобы исправить это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...