在javascript中切换图层
Toggling Layers in javascript
本文关键字:图层 javascript 更新时间:2023-09-26
我使用的以下JavaScript与单个onclick函数一起工作很好。我需要两个onclick函数在同一时间。
// JavaScript Document
var state = 'hidden';
function showhide(layer_ref) {
if (state == 'visible') {
state = 'hidden';
}
else {
state = 'visible';
}
if (document.all) { //IS IE 4 or 5 (or 6 beta)
eval( "document.all." + layer_ref + ".style.visibility = state");
}
if (document.layers) { //IS NETSCAPE 4 or below
document.layers[layer_ref].visibility = state;
}
if (document.getElementById && !document.all) {
maxwell_smart = document.getElementById(layer_ref);
maxwell_smart.style.visibility = state;
}
}
下面的HTML onclick工作正常
<a href="#" onclick="showhide('sidebar')" ><img src="supports/images/cp.png" width="86" height="20" /></a>
现在,我需要精确的语法来同时切换两层。我尝试使用以下代码,但它不工作。谁能帮我纠正一下?
<a href="#" onclick="showhide('sidebar'); showhide('div_menu');" ><img src="supports/images/cp.png" width="86" height="20" /></a>
试试这段代码。
<html>
<head>
<script type="text/javascript">
var setT;
function toggle(id){
var myDiv=document.getElementById(id);
if(myDiv.style.visibility=='hidden'||myDiv.style.visibility==''){
myDiv.style.visibility='visible';
setT = setTimeout('closeD("'+id+'")',3000)
}
else{closeD(id)}
}
function closeD(id){
document.getElementById(id).style.visibility='hidden';
if(setT){clearTimeout(setT)}
}
</script>
</head>
<body>
<a href="#" onClick="toggle('mydiv'); toggle('mydiv2')">show/hide</a>
<br>
<div id="mydiv">my div</div>
<div id="mydiv2">my div2</div>
</body>
</html>
不要使用var state = 'hidden',它是全局变量,使用state作为showhide的函数参数
钟舒的意思是在不同的层之间只有一个state
变量是共享的。
我不知道为什么你想要支持像Netscape 4或IE 5这样老的浏览器,因为除了博物馆或复古计算博览会你不会在任何地方看到它们,而且我只在它们存在的时候使用HTML(不是JS),所以我真正能做的就是为所有现代浏览器提供一个片段,它应该说明解决这个问题的最佳方法:
// Reinvent jQuery's .toggle() without the years of polish and bugfixing
function showhide(node_id) {
if (document.getElementById) {
node = document.getElementById(node_id);
state = node.style.visibility
if (state == 'visible') {
node.style.visibility = 'hidden';
} else {
node.style.visibility = 'visible';
}
}
}
相关文章:
- 更改图层中单个矢量特征的图标
- 谷歌地图热图图层点半径
- 谷歌地图-更改图层图标大小
- 如何通过ID获取图层对象
- 用于绘制工作流图的JavaScript框架
- CS5隐藏图层的速度非常慢
- Google Maps JavaScript API:动态样式KML图层
- 使用 Geoserver 中的 Javascript 动态设置 WMS 图层样式
- ArcGIS JavaScript API 渲染要素图层的某些部分
- 在 Esri JavaScript API 3.5 及更早版本中打印要素图层标注
- 在 ArcGIS JavaScript 中使用标注图层的目录
- 使用 javascript 获取选定图层或图层组数组 (Photoshop CS4)
- 使用适用于 JavaScript 的 ArcGIS API 在地图上显示 KMZ 图层的各个图层
- 使用 Javascript 循环将 GeoJSON 图层从 GeoServer 添加到数组中
- 使用javascript在photoshop中查找特定图层的图层组
- Adobe Acrobat Javascript表单-在多个页面中显示/隐藏图层
- 如何使用JavaScript在Photoshop中使用相对坐标移动图层
- 在javascript中切换图层
- ArcGIS JavaScript 如何关闭图层
- Javascript Photoshop:用于更改现有文本图层的文本颜色的语法