Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вместо текста через 25 секунд появляется ссылка (https://javascript.ru/forum/misc/25317-vmesto-teksta-cherez-25-sekund-poyavlyaetsya-ssylka.html)

Изучаю_JS 01.02.2012 16:15

Вместо текста через 25 секунд появляется ссылка
 
Доброго времени суток дорогие форумчане!
Вопрос:
Есть ссылка, и при ее нажатии должен появляться текст, и после 25 секунд текст исчезает и вместо текста появляется ссылка, как можно это сделать ? (готовый вариант) пожалуйста помогите :(

Раед 01.02.2012 16:19

этот процесс "ссылка<-->текст" должен быть постоянным?
или только 1 раз

Изучаю_JS 01.02.2012 16:24

Раед, не понял о чем вы, но объясню так:
Вот ссылка:
<a href="#">view</a>

И при ее нажатии появляется текст, и этот текст будет стоять 25 сек.. и после текст исчезает и вместо текста появляется ссылка, и все больше это ссылка не исчезает, а точнее только один раз, и после обновление страницы все будет заново

Изучаю_JS 01.02.2012 16:39

Раед, извиняюсь, да я вас понял) да только один раз!

Раед 01.02.2012 16:41

function linkToText(element) {
 var text = element.innerHTML;
 var el2 = document.createElement('span');
 el2.innerHTML = text;
 element.parentNode.insertBefore(el2,element);
 element.style.display = 'none';
 var handler = function() {
  element.parentNode.removeChild(el2);
  element.style.display = '';
 }
 setTimeout(handler,25000);
}
//пример:
document.getElementById('changingLink').onclick = function() {
 linkToText(document.getElementById('changingLink'));
}

Изучаю_JS 01.02.2012 17:27

:-? а как это потом установить ? покажите пожалуйста готовый пример :(

Раед 01.02.2012 17:40

<html>
<head>
<script type="text/javascript">
function linkToText(element) {
 var text = element.innerHTML;
 var el2 = document.createElement('span');
 el2.innerHTML = text;
 element.parentNode.insertBefore(el2,element);
 element.style.display = 'none';
 var handler = function() {
  element.parentNode.removeChild(el2);
  element.style.display = '';
 }
 setTimeout(handler,25000);
}
function addListener(id){
document.getElementById(id).onclick = function() {
 linkToText(document.getElementById(id));
}
addListener('cl');
}
</script>
</head>
<body>
<a href="#" id="cl">view</a>
</body>
</html>

добавил ф-ию addListener. Она получает аргументом id и сама ставит обработчик

Изучаю_JS 01.02.2012 17:54

Раед, так я не понял, а как ставить текст который должен появиться, и еще как вставить ссылку которая тоже должна появиться после исчезании текста ?

Изучаю_JS 01.02.2012 17:58

Вот например скрипт:

<a onclick="toggle(hidden_content)" style="cursor:pointer">Я кнопка</a>
<div id="hidden_content" style="display: none;">А я текст и я исчезну после 25 секунды</div>
<script>
function toggle(el) {
el.style.display = (el.style.display == 'none') ? '' : 'none'
}
</script>


тут есть уже текст, и нужно сделать чтобы этот текст стояло 25 секунд, и исчезла, и сразу после исчезновения появлялась ссылка, сразу на место текста, и с эффектом "slow" хотя не важно..

Раед 01.02.2012 18:16

<a id="hidden_link" onclick="toggle('hidden_link','hidden_content')" style="cursor:pointer">Я кнопка</a>
<div id="hidden_content" style="display: none;">А я текст и я исчезну после 25 секунды</div>
<script>
function toggle(id1,id2) {
var el1 = document.getElementById(id1);
el1.style.display = 'none';
var el2 = document.getElementById(id2);
el2.style.display = 'block';
handler = function() {
 el2.style.display = 'none';
 el1.style.display = '';
}
setTimeout(handler,25000);
}
</script>

извините, эффект slow не знаю как реализовать
setTimeout - почитайте


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