Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Изменение содержимого DIV (https://javascript.ru/forum/dom-window/45258-izmenenie-soderzhimogo-div.html)

DarkLotos 20.02.2014 21:42

Изменение содержимого DIV
 
Добрый вечер.
Есть список переключателей, он постоянно меняет текущее значение.
Вот код, который постоянно в цикле листает radio
l = document.news_links.link.length;
for (i = 0; i < l; i++)
{if (document.news_links.link[i].checked){a = i}}

setInterval(function() 
{
 if (a == l-1)
  {a = 0;}
 else
 {++a;}
document.news_links.link[a].click();
}, 2000)

А вот так выглядит разметка
<div id="news">
<div id="news_content">
</div>
<form name="news_links">
<ul>
<li><input type="radio" name="link" checked/>1</li>
<li><input type="radio" name="link" />2</li>
<li><input type="radio" name="link" />3</li>
<li><input type="radio" name="link" />4</li>
<li><input type="radio" name="link" />5</li>
</ul>
</form>
</div>

Подскажите, как изменять содержимое news_content в зависимости от текущего radio каждый раз при изменения состояния?

рони 20.02.2014 22:03

DarkLotos,
;)
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>
<div id="news">
<div id="news_content">1
</div>
<form name="news_links">
<ul>
<li><input type="radio" name="link" checked/>1</li>
<li><input type="radio" name="link" />2</li>
<li><input type="radio" name="link" />3</li>
<li><input type="radio" name="link" />4</li>
<li><input type="radio" name="link" />5</li>
</ul>
</form>
</div>

<script>
var l = document.news_links.link.length, a = 0;

setInterval(function()
{
 a = ++a % l;
document.news_links.link[a].checked = true;
 document.getElementById('news_content').innerHTML = a + 1
}, 2000)

</script>
</body>

</html>

ksa 21.02.2014 08:58

Цитата:

Сообщение от DarkLotos
как изменять содержимое news_content в зависимости от текущего radio каждый раз при изменения состояния?

Предложу такой вариант...

<!DOCTYPE html>
<html>
<head>
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<link rel='stylesheet type=text/css href=tmp.css' />
-->
<style type='text/css'>
#news_content > div {
	display: none;
}
#news_content > div.on {
	display: block;
}
</style>
<script type='text/javascript'>
$(function (){
	$('#news input:radio').click(function () {
		var i=$(this).data('content');
		$('#news_content > div.on').removeClass('on');
		$('#cnt_item'+i).addClass('on');
	});
	(function (){
		l = document.news_links.link.length;
		for (i = 0; i < l; i++)	{
			if (document.news_links.link[i].checked){
				a = i;
			};
		};
		setInterval(function() {
			a = ++a % l;
			document.news_links.link[a].click();
		}, 2000);
	})();
})
</script>
</head>
<body>
<div id="news">
	<div id="news_content">
		<div id='cnt_item1' class='on'>Content 1</div>
		<div id='cnt_item2'>Content 2</div>
		<div id='cnt_item3'>Content 3</div>
		<div id='cnt_item4'>Content 4</div>
		<div id='cnt_item5'>Content 5</div>
	</div>
	<form name="news_links">
		<ul>
			<li><input type="radio" data-content='1' name="link" checked/>1</li>
			<li><input type="radio" data-content='2' name="link" />2</li>
			<li><input type="radio" data-content='3' name="link" />3</li>
			<li><input type="radio" data-content='4' name="link" />4</li>
			<li><input type="radio" data-content='5' name="link" />5</li>
		</ul>
	</form>
</div>
</body>
</html>


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