Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не работает скрипт на FF, Не работает в FF ф-я смены изображения  
V
    Опции темы
lel1k
Дата 14.9.2008, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 14.9.2008
Где: Россия -> г.То мск

Репутация: нет
Всего: нет



Доброго времени суток!
Проблема такова : Скрипт работает в IE, Opera, но отказывается работать в FF. 
Имеем div и картинку-ссылку. Ф-я ChangeDisplay(obj,img) должна смотреть значение dispaly некоторого div-a (он передаётся в качестве параметра obj) и в зависимости от этого display, открывать или скрывать поле, а так же менять картинку. 
Прошу не судить строго за вопрос, т.к. опыта ещё совсем мало. Подскажите пажалуста, как заставить это всё работать. Заранее спасибо за ответ. 
 
Вот код :
Код

<script language="JavaScript">
function Imgload() //ф-я предварительной загрузки картинки
{
     img2=new Image();
     img2.src='img/arrowup.gif';
}
    
function ChangeDisplay(obj,img) 
{
 
 if (obj.style.display=='none')
        {
        obj.style.display='block';
        temp=img.src;
        img.src=img2.src;
        }
 
 else
        {
        obj.style.display='none';
        img.src=temp;
        }
        
}
</script>

 
Код

<html>
<head>
...
<? include ("scripts/ChangeDisplay.js"); ?>
</head>
<body onLoad="Imgload();"> <!--Функция предварительной загрузки картинки-->
...

<div id="list_full" style="display:none"> <!--Див, кт. надо скрывать/показывать-->
...
</div>    

<a  onClick = "ChangeDisplay (list_full, arrow_img);">     <!--list_full и Image1 - это id эл-тов-->
    <img id = "arrow_img" src="img/arrowdown.gif" ><span>Показать/убрать полный список</span>
</a>

</body>
</html>



Это сообщение отредактировал(а) lel1k - 14.9.2008, 18:46
PM MAIL WWW   Вверх
skyboy
Дата 14.9.2008, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 3
Всего: 260



Цитата(lel1k @  14.9.2008,  17:44 Найти цитируемый пост)
"ChangeDisplay (list_full, arrow_img);">     <!--list_full и Image1 - это id эл-тов-->

сделай так:
Код

ChangeDisplay (document.getElementById('list_full'), document.getElementById('arrow_img'));

конечно, если у тебя раньше переменные list_full и arrow_img нигде не инициализировались.
PM MAIL   Вверх
lel1k
Дата 15.9.2008, 06:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 14.9.2008
Где: Россия -> г.То мск

Репутация: нет
Всего: нет



skyboy: сделал так
Код

<a  onClick = 'ChangeDisplay (document.getElementById('list_full'),document.getElementById('arrow_img'));'>
   <img id = 'arrow_img' src='img/arrowdown.gif' ><span>Показать/убрать полный список</span>
</a>

вообще не работает нигде. id как и положено уникальные.
Насколько корректно вообще передавать в ф-ю ChangeDispaly(id1, id2) просто id эл-тов? Или необходимо делать всё только через document.getElementById('id')?

Ещё забыл сказать, что вызываю ф-ю ChangeDisplay из файла right.php, который подключается к основному файлу (index.php) стандартным образом : <? include ("blocks/right.php");?>, а скрипт объявляется в заголовке у индексного файла , может быть в этом дело, document.getElementById() может неправильно отрабатывать?

Это сообщение отредактировал(а) lel1k - 15.9.2008, 06:13
PM MAIL WWW   Вверх
Sanchezzz
  Дата 15.9.2008, 06:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 3
Всего: 60



Код

 onClick ="ChangeDisplay (document.getElementById('list_full'),document.getElementById('arrow_img'));">


может все иза одинарных кавычках?


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
lel1k
Дата 15.9.2008, 07:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 14.9.2008
Где: Россия -> г.То мск

Репутация: нет
Всего: нет



Sanchezzz:

с одинарными кавычками т.к. конструкция такая : 
Код

 <? 
    if ($count != 0) 
    {
    echo "<div class = 'birth_view_full_list' > 
    <a  onClick = 'ChangeDisplay (list_bir_next_full, downbtn2);'>
        <img id = 'downbtn2' src='img/arrowdown.gif' ><span>Показать/убрать полный список</span>
    </a>
    </div>";
    }
?>    

Пробовал заменять всё это на
Код

<a  onClick = "ChangeDisplay (document.getElementById("list_bir_next_full"), document.getElementById("downbtn2"));">
   <img id = "downbtn1" src="img/arrowdown.gif" ><span>Показать/убрать полный список</span>
</a>

результатов не дало, не работает по прежнему, а кавычки как я понимаю яве любые подходят.


Это сообщение отредактировал(а) lel1k - 15.9.2008, 07:32
PM MAIL WWW   Вверх
Sanchezzz
Дата 15.9.2008, 07:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 3
Всего: 60



ну если он onClick= начинается с таких " то в функцию строковые параметры передаются через одинарные если с одинарных то двойные. но лучше начинать с двойных тогда не придется экранировать ( \' )



--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
skyboy
Дата 15.9.2008, 08:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 3
Всего: 260



lel1k, ты на  свой код посмотри с подсветкой. здесь, на форуме, в своем сообщеини. то у тебя onclick в одинарных кавычках и параметры - тоже в одинарных, то onclick - в двойніх и парамертры в двойных. что ж ты, код в обычном блокноте без подсветки пишешь, что тебе этого не видно?
Цитата(lel1k @  15.9.2008,  05:12 Найти цитируемый пост)
Насколько корректно вообще передавать в ф-ю ChangeDispaly(id1, id2) просто id эл-тов? Или необходимо делать всё только через document.getElementById('id')?

о таком подходе я лично узнал, когда ты написал. в FF точно автоматом переменные, одноименные с объявленными id, не объявляются. в IE, в принцпие, все может быть...
PM MAIL   Вверх
lel1k
Дата 15.9.2008, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 14.9.2008
Где: Россия -> г.То мск

Репутация: нет
Всего: нет



Всё, спасибо, разобрался. Дело было в кавычках.

вот такой код сработал: 
Код

<a  onClick = "ChangeDisplay (document.getElementById('list_bir_full'), document.getElementById('downbtn1'));">
   <img id = "downbtn1" src="img/arrowdown.gif" ><span>Показать/убрать полный список</span>
</a>        



Это сообщение отредактировал(а) lel1k - 15.9.2008, 13:38
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0477 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.