我试图在两个div之间切换。例如,onload,我希望显示左侧内容,并且正确的内容将保持隐藏状态。如果我单击右侧div,我希望隐藏左侧内容并显示正确的内容,反之亦然。我是javascript的新手,但这就是我所拥有的。我似乎无法让它发挥作用。请帮忙......
这是我的HTML代码:
<div onclick="toggle_visibility('left');">
Left
</div>
<div onclick="toggle_visibility('right');">
Right
</div>
<div id="left" style="display: block;">
This is the content for the left side
<div>
<div id="right" style="display: none;">
This is the content for the ride side
</div>
这是我正在使用的Javascript:
<script type="text/javascript">
function toggle_visibility(id) {
var e = document.getElementById(id);
if(e.style.display == 'block')
e.style.display = 'none';
else
e.style.display = 'block';
}
</script>
答案 0 :(得分:6)
现场演示: http://jsfiddle.net/PauWy/1/
HTML:
<p id="toggle">
<span> Left </span>
<span> Right </span>
</p>
<div id="left"> LEFT CONTENT </div>
<div id="right"> RIGHT CONTENT </div>
JavaScript:
$('#toggle > span').click(function() {
var ix = $(this).index();
$('#left').toggle( ix === 0 );
$('#right').toggle( ix === 1 );
});
CSS(隐藏正确的DIV onload):
#right { display:none; }
将JavaScript代码放在页面底部。
<script>
$(function() {
// put jQuery code here
});
</script>
</body>
注意SCRIPT元素如何位于BODY元素的末尾。另请注意,jQuery代码应位于就绪处理程序中:$(function() { ... code ... });
答案 1 :(得分:3)
这是一个在两个html文档之间切换的小例子。首先在身体加载时调用该函数。你需要用你要翻转的两个页面替换1.html和2.html。如果您想要更长的延迟,请用您想要的任何东西替换3000。计时器值以毫秒为单位,因此如果您想要20秒,则为20000。
<html>
<head>
<script type="text/javascript">
top.visible_id = 'right';
function toggle_visibility() {
var right_e = document.getElementById('right');
var left_e = document.getElementById('left');
if (top.visible_id == 'right') {
right_e.style.display = 'none';
left_e.style.display = 'block';
top.visible_id = 'left';
} else {
right_e.style.display = 'block';
left_e.style.display = 'none';
top.visible_id = 'right';
}
var t = setTimeout("toggle_visibility()",3000);
}
</script>
</head>
<body onload="toggle_visibility();">
<div id="left" >
<iframe src="1.html"></iframe>
</div>
<div id="right" >
<iframe src="2.html"></iframe>
</div>
</body>
</html>
答案 2 :(得分:1)
因为你标记了问题jquery
,所以假设你对jquery解决方案持开放态度。它会使这很简单。看看下面的示例jsfiddle ......
当然你需要一些css来进行样式设置,但是单击示例中的div将在两个div之间切换
答案 3 :(得分:1)
对于初学者来说,缺少结束标记。讨厌的东西,那些。
其次,您需要跟踪当前可见的div,以便隐藏它。以下应该有效。
<html>
<head>
<script type="text/javascript">
top.visible_div_id = 'right';
function toggle_visibility(id) {
var old_e = document.getElementById(top.visible_div_id);
var new_e = document.getElementById(id);
if(old_e) {
console.log('old', old_e, 'none');
old_e.style.display = 'none';
}
console.log('new', new_e, 'block');
new_e.style.display = 'block';
top.visible_div_id = id;
}
</script>
</head>
<body onload="toggle_visibility('left');">
<div onclick="toggle_visibility('left');">
Left
</div>
<div onclick="toggle_visibility('right');" >
Right
</div>
<div id="left" >
This is the content for the left side
</div>
<div id="right" >
This is the content for the ride side
</div>
</body>
</html>
答案 4 :(得分:0)
您每次只切换2个元素中的1个的可见性。单击左侧时,它将消失,但您没有告诉右侧出现。尝试:
<div onclick="toggle_visibility('left');toggle_visibility('right');">
Left
</div>
<div onclick="toggle_visibility('right');toggle_visibility('left');">
Right
</div>