Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   javascript + спойлер (https://javascript.ru/forum/misc/31322-javascript-spojjler.html)

Gekko 03.09.2012 15:18

javascript + спойлер
 
Подскажите пожалуйста:

У меня определенный текст изначально находится под спойлером:
<input type="button" onclick="$('#$NUMBER$').slideToggle('fast');" href="javascript://" value="Показать">
<div id="$NUMBER$" style="display: none;"> 
текст 
</div>

И скрипт дающий ссылку на этот текст:
<a title="Нажмите для получения прямой ссылки на этот текст" href="javascript://" onclick="prompt('Ссылка на текст:',location.href.split('#',1) + '#comEnt$ID$');">cсылка на текст</a>

Что нужно дописать в этом коде (выше), что бы он при переходе по ссылке, открывал сам спойлер?

MTapac 03.09.2012 17:41

<input type="button" onclick="document.getElementById('NUMBER').style.display = 'block';" href="#" value="Показать">
	<div id="NUMBER" style="display: none;"> 
	текст 
	</div>

Deff 03.09.2012 17:47

</div>
<input type="button" onclick="$('#$NUMBER$').slideToggle('fast');" href="javascript://" value="Показать">
<div id="$NUMBER$" style="display: none;"> 
текст 
</div>


<a title="Нажмите для получения прямой ссылки на этот текст" href="javascript://" onclick="prompt('Ссылка на текст:',location.href.split('#',1) + '#comEnt$ID$;');$('#$NUMBER$').slideToggle('fast');">cсылка на текст</a>

Gekko 03.09.2012 19:26

Цитата:

Сообщение от Deff (Сообщение 202823)
<a title="Нажмите для получения прямой ссылки на этот текст" href="javascript://" onclick="prompt('Ссылка на текст:',location.href.split('#',1) + '#comEnt$ID$;');$('#$NUMBER$').slideToggle('fast');">cсылка на текст</a>

Открывает спойлер когда закрываешь окошко c ссылкой, а не при переходе по ссылке которая дается. :(

Deff 03.09.2012 21:48

Цитата:

Сообщение от Gekko
Открывает спойлер когда закрываешь окошко c ссылкой, а не при переходе по ссылке которая дается.

<body onscroll="a=location.href.split('#');if(a[1])$('#next-'+a[1]).slideDown('fast')">









<input type="button" onclick="$('#next-NUMBER').slideToggle('fast');" href="javascript://" value="Показать">
<a name="NUMBER"></a>
<div id="next-NUMBER" style="display: none;">
текст 
</div>


<a title="Нажмите для получения прямой ссылки на этот текст" href="javascript://" onclick="prompt('Ссылка на текст:',location.href.split('#',1) + '#comEnt$ID$;');">cсылка на текст</a>


;if(a[1])$('#next-'+a[1]) Тут можно сделать более глубокую проверку на соответсвие нужным типам ссылок

- Реальный якорь <a name="NUMBER"></a> , - ставим чуть выше спойлера

Gekko 03.09.2012 23:45

Цитата:

Сообщение от Deff (Сообщение 202852)
<body onscroll="a=location.href.split('#');if(a[1])$('#next-'+a[1]).slideToggle('fast')">









<input type="button" onclick="$('#NUMBER').slideToggle('fast');" href="javascript://" value="Показать">
<a name="NUMBER"></a>
<div id="next-NUMBER" style="display: none;">
текст 
</div>


<a title="Нажмите для получения прямой ссылки на этот текст" href="javascript://" onclick="prompt('Ссылка на текст:',location.href.split('#',1) + '#comEnt$ID$;');">cсылка на текст</a>


;if(a[1])$('#next-'+a[1]) Тут можно сделать более глубокую проверку на соответсвие нужным типам ссылок

- Реальный якорь <a name="NUMBER"></a> , - ставим чуть выше спойлера

Перестал вообще открывать текст под спойлером. Наверно из-за разного ID кнопки и спойлера. И все также не открывает спойлер после перехода по ссылке. Может конечно я не туда что-то вставил. (проверил разные вариации)
Если что, $NUMBER$ это порядковый номер спойлера (для каждого свой: 1,2,3...99), ибо спойлеров на странице может быть много.

Deff 04.09.2012 00:26

Gekko,
Поставьте тестовый пример - ничего не меняя - потом думайте сами - мну выложил для одной статической единицы спойлера без PHP ( далее размножите по образцу сами

(*За кнопкой - не гнался - поправил

Gekko 04.09.2012 18:19

Deff,
Я заменил $NUMBER$ в ID спойлера на #comEnt$ID$, потому что он для каждого тоже индивидуальный. Как мне теперь изменить
;if(a[1])$('#next-'+a[1])
что бы он работал?

Gekko 04.09.2012 19:02

При
;if(a[1])$('#'+a[1])
спойлер начинает беситься около секунды и в итоге вообще пропадает или остается закрытым.

А можно ли сделать так:
Если ссылка в адресе не обычная (типа зашел по сгенерированной), то открыть спойлер с ID из ссылки? Потому что сейчас, как я понял он будет открываться если скролить.

Deff 05.09.2012 00:01

Цитата:

Сообщение от Gekko
спойлер начинает беситься около секунды и в итоге вообще пропадает или остается закрытым.

:D Соррь, я забыл про что toggle - поправил


Часовой пояс GMT +3, время: 20:10.