[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Яваскрипт не работает если переносить строчки
Xes
Нашел на сайте яваскрипт для выподающего текста. Почемуто когда перенашу строки он перестает работать, надо обязательно сохранить ту структуру, которую я привел.


<div style="width:400px;" ><a href="" onclick="
obj=this.parentNode.childNodes[1].style;
tmp=(obj.display!='block') ? 'block' : 'none';
obj.display=tmp;
return false;"
style="color:#7e7e7e;">Пример:</a><div style="display: none; text-align:justify; padding:5 0 5 5">
Ну просто огромный текст сюда запихиваем .... )
</div></div>




Спустя 37 минут, 36 секунд (19.04.2011 - 08:38) sergeiss написал(а):
Такие штуки лучше выносить в виде отдельных функций... "Красивее", удобнее, компактнее, понятнее, меньше сетевой трафик.
Попробуй вынести этот код в функцию, а тут оставь только вызов этой функции. Должно будет заработать.

Спустя 2 часа, 37 минут, 19 секунд (19.04.2011 - 11:15) Dr.Mars написал(а):
используй \

<script>alert('1 \
');</script>

Спустя 3 часа, 48 минут, 24 секунды (19.04.2011 - 15:04) Xes написал(а):
Цитата (Dr.Mars @ 19.04.2011 - 08:15)
используй \

<script>alert('1 \
');</script>

Можно поподробней, как это будет выглядить для моего текста. У меня всего 3 таких блока на всем сайте. Поэтому выносить кудато отдельно я думаю не стоит.
Вобщем то работает и так, но хотелось бы код отформатировать к приятному глазу виду, да и не париться, а то случйно чтото меняю и все перестает работать.

И про тиорию, для общего развития подскажите, почему в данном случае нельзя форматировать строки?

Спустя 30 минут, 40 секунд (19.04.2011 - 15:34) Krevedko написал(а):
должно все в линию идти. таков долбаный ява-скрипт. можешь использовать конкатенацию

Спустя 7 часов, 34 минуты, 39 секунд (19.04.2011 - 23:09) kirik написал(а):
Xes
У меня ваш код работает, да и на вид с ним всё впорядке. Может ошибка в другом месте?

Спустя 1 день, 23 часа, 5 минут, 7 секунд (21.04.2011 - 22:14) Xes написал(а):
Цитата (kirik @ 19.04.2011 - 20:09)
Xes
У меня ваш код работает, да и на вид с ним всё впорядке. Может ошибка в другом месте?

Код РАБОЧИЙ.
НО писать вот именно, его надо именно так как я его записал если написать даже вот так то перестает рабоать:
<div style="width:400px;" >
<a
href="" onclick="
obj=this.parentNode.childNodes[1].style;
tmp=(obj.display!='block') ? 'block' : 'none';
obj.display=tmp;
return false;"
style="color:#7e7e7e;">Пример:</a><div style="display: none; text-align:justify; padding:5 0 5 5">
Ну просто огромный текст сюда запихиваем .... )
</div></div>


Либо надо писать в одну строку, как тут и подсказали.

Спустя 1 час, 12 минут, 3 секунды (21.04.2011 - 23:26) kirik написал(а):
Xes
Ну правильно. Вы вставляете перенос строки между <div> и <a>, а это элемент. И тогда тэг <a> внутри <div> будет не первым, а вторым (и div который мы хотим скрыть будет третьим по счету). Вот рабочий вариант:
<div style="width:400px;" >
<a
href="" onclick="
obj=this.parentNode.childNodes[2].style;
tmp=(obj.display!='block') ? 'block' : 'none';
obj.display=tmp;
return false;"
style="color:#7e7e7e;">Пример:</a><div style="display: none; text-align:justify; padding:5 0 5 5">
Ну просто огромный текст сюда запихиваем .... )
</div></div>

Но на сколько я помню, в каком-то из браузеров (вроде в ИЕ) перенос строки не считался за элемент, поэтому для кроссбраузерности (да и просто для удобства) я бы сделал так:
<div style="width:400px;" >
<a
href="" onclick="
obj=this.parentNode.getElementsByTagName('div')[0].style;
tmp=(obj.display!='block') ? 'block' : 'none';
obj.display=tmp;
return false;"
style="color:#7e7e7e;">Пример:</a>
<div
style="display: none; text-align:justify; padding:5 0 5 5">
Ну просто огромный текст сюда запихиваем .... )
</div>
</div>

теперь не нужно заботиться о переносах строки.

Спустя 13 часов, 14 минут, 25 секунд (22.04.2011 - 12:40) Xes написал(а):
Теперь ясно почему не работоло, спасибо за объяснение и за новый код.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.