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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> не работает в Mozille display='none', или как обратится к элементу по ID? 
:(
    Опции темы
pasha_kiev
Дата 26.1.2005, 01:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 26.1.2005

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



Здравствуйте!
Подскажите, плиз:

у меня на странце есть слой скрытый:

Код

<div style="display:none" id="layer1">La la la</div>


есть кнопка:

Код

<input type=button  onClick="show_comment(layer1, this);" value="Показать">


и есть скрипт, который запускается кнопкой и должен делать слой видимым и опять невидимым:

Код

<script>
function show_comment(layer, button){
if(layer.style.display == 'none'){
layer.style.display = 'inline';
button.value = 'Спрятать';
}else{
layer.style.display = 'none';
button.value = 'Показать';
};
}
</script>


В Эксплорере и Опере все работает супер, а в Мозилле не хочет.
Не подскажите, как лучше в данном случае коротко изменить функцию, чтобы скрипт стал универсальным?
Спасибо
Добавлено @ 01:10
И в Netscape тоже самое не работает.
А в Опере - все супер
PM MAIL   Вверх
Sardar
Дата 26.1.2005, 01:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



pasha_kiev отвыкай от прямого обращения к обьектам по ID/имени как в ИЕ, это против стандартов smile
Пишем так:
HTML
<input type="button" onclick="show_comment(document.getElementById('layer1'), this);" value="Показать" />



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
pasha_kiev
Дата 26.1.2005, 08:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 26.1.2005

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



Теперь у меня кнопка имеет такой параметр:

Код

onClick="show_comment(document.getElementById("layer1"), this);"


И все равно не работает не Мозиле, не в Експлорере теперь
Добавлено @ 08:37
Ого, я проверил, поменял кавычки с двойных на одинарные вокруг layer1 и все стало работать.
Спасибо огромное Sardar
PM MAIL   Вверх
pasha_kiev
Дата 26.1.2005, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 26.1.2005

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



Еще одна проблемка:

есть кнопка с параметром:

Код

onmouseover="OverMnu2(document.getElementById('br8'))"  
onmouseout="setTimeout(OutMnu2(document.getElementById('br8')),150);"


при наведении функция OverMnu2 срабатывает
а при снятии курсора с кнопки происходит странное:

срабатывает функция OutMnu2, но не срабатывает задержка setTimeout
Может что-то с кавычками?

PM MAIL   Вверх
Alx
Дата 26.1.2005, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

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



pasha_kiev
а ты сравни данный тебе вариант Sardar`oм:
Цитата(Sardar @ 26.1.2005, 01:56)
onclick="show_comment(document.getElementById('layer1'), this);"

и свой:
Цитата(pasha_kiev @ 26.1.2005, 08:34)
onClick="show_comment(document.getElementById("layer1"), this);"



--------------------
PM MAIL WWW ICQ   Вверх
pasha_kiev
Дата 26.1.2005, 19:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 26.1.2005

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



Alx спасибо, но, как я уже писал,
с двойными кавычками вообще не работает
Не выполняется даже функция OutMnu
PM MAIL   Вверх
Aliance
Дата 26.1.2005, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

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



pasha_kiev
Есесно, незакрытые кавычки открыть нельзя!
PM MAIL WWW ICQ Skype   Вверх
pasha_kiev
Дата 26.1.2005, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 26.1.2005

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



я понял, а почему задрежка не работает?
PM MAIL   Вверх
Aliance
Дата 26.1.2005, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

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



Цитата(pasha_kiev @ 26.1.2005, 19:55)
я понял, а почему задрежка не работает?

Трудно сразу сказать не проверяя весь код.
Возможно, первый параметр функции задержки имеет строковый тип данных?!
PM MAIL WWW ICQ Skype   Вверх
Sardar
Дата 26.1.2005, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



pasha_kiev потому что обьект достается перед выполнением setTimeout, затем приводится к строке [object], ну а затем это всё исполняется, естественно с ошибками. Пробуем по другому:
Код
function OverMnu2(elid) {
 var obj=document.getElementById(elid);
 //делаем что угодно с элементом
}
//то же самое для OutMnu2

Код
onmouseover="OverMnu2('br8')"  
onmouseout="setTimeout('OutMnu2(\"br8\");'),150);"



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
pasha_kiev
Дата 27.1.2005, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 26.1.2005

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



Спасибо,
Sardar. Второй раз выручаешь.
Но я тебя второй раз поправлю: работает так:


Код

onmouseout=setTimeout("OutMnu2('br8')",150);


сравни со своим. У тебя лишняя скобка и слеши.

Вопрос считаю закрытым. Все спасибо.

Это сообщение отредактировал(а) pasha_kiev - 27.1.2005, 23:40
PM MAIL   Вверх
Sardar
Дата 27.1.2005, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



Да скобка лишняя, промахнулся smile Но слеши нет, валидатор XHMTL будет матерится на твой вариант smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
pasha_kiev
Дата 27.1.2005, 23:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 26.1.2005

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



не понял.
Поясни, плиз, про валидатор
PM MAIL   Вверх
Aliance
Дата 28.1.2005, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

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



pasha_kiev
Это escape-последовательности. Первая «\» не передается в HTML.
Список escape-последовательностей:
\b => возврат на 1 позицию
\t => горизонтальная табулиция
\n => новая строка (Enter)
\v => вертикальная табуляция
\f => подача страницы
\r => возврат каретки (Backspace)
\" => "
\' => '
\\ => \

Примеры:
1)
Код

alert("В кинотеатрах шел фильм \"Ночной дозор\", которыя я смотрел");

выведет В кинотеатрах шел фильм "Ночной дозор", который я смотрел
Аналог ^
Код

alert('В кинотеатрах шел фильм "Ночной дозор", который я смотрел');

2)
Код

alert("2 Days;\n\n3 Hours\n\n69 Mileseconds");

выведет
2 Days;

3 Hours

69 Mileseconds


Это сообщение отредактировал(а) Aliance - 28.1.2005, 00:18
PM MAIL WWW ICQ Skype   Вверх
Sardar
Дата 28.1.2005, 00:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



pasha_kiev согласно специфиации XHTML все аттрибуты должны быть обёрнуты в кавычки, onmouseout это аттрибут smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




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


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

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