I have an older JavaScript/CSS file that used to (no longer works in current browsers) toggle the display properties for multiple div
s by way of anchor tags. The CSS document.stylesheets would toggle based on value "rules", that required the style to be in a specific sequence to control the "none" to "block" toggling (or the reverse). Here is a link to the JSFiddle example: JSFiddle
我有一个旧的JavaScript / CSS文件,以前(不再适用于当前浏览器)通过锚标记切换多个div的显示属性。 CSS document.stylesheets将根据值“规则”进行切换,这需要样式按特定顺序控制“无”到“阻止”切换(或反向)。这是JSFiddle示例的链接:JSFiddle
Here is the JavaScript:
这是JavaScript:
function NorB(arg){
if (arg=="n") {
document.styleSheets[0].rules[0].style.display=='block';
document.styleSheets[0].rules[1].style.display=='none';
} else {
document.styleSheets[0].rules[0].style.display=='none';
document.styleSheets[0].rules[1].style.display=='block';
}
}
Here is the HTML:
这是HTML:
<table>
<tr>
<td>
<div class="narrative" id="rpmAct1">
<div class="buttons">
<div class="narButton"><a href="javascript: onClick=NorB('n')">Narrative ></a></div>
<div class="bulButton"><a href="javascript: onClick=NorB('b')">List View ></a></div>
</div>
<div class="narrativeContent">
<div class="n">Narrative text</div>
<div class="b">
<ul>
<li>List Item A</li>
<li>List Item B</li>
<li>List ITem C</li>
</ul>
</div>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="narrative" id="rpmAct2">
<div class="buttons">
<div class="narButton"><a href="javascript: onClick=NorB('n')">Narrative 2></a></div>
<div class="bulButton"><a href="javascript: onClick=NorB('b')">List View 2></a></div>
</div>
<div class="narrativeContent">
<div class="n">Narrative 2 text</div>
<div class="b">
<ul>
<li>List 2 Item A</li>
<li>List 2 Item B</li>
<li>List 2 ITem C</li>
</ul>
</div>
</div>
</div>
</td>
</tr>
</table>
And lastly, the CSS:
最后,CSS:
.n {
display:block;
}
.b {
display:none;
}
.b ul {
margin-left:3px;
margin-top:0px;
margin-right:10px;
margin-bottom:-2px;
}
.b ul li {
list-style-type:square;
list-style-position:outside;
line-height:12px;
}
.buttons {
position:relative;
width:300px;
}
.narButton {
width:80px;
float:left;
padding:2px 0px 2px 5px;
}
.bulButton {
width:80px;
float:left;
padding:2px 0px 2px 5px;
}
.bulButton a, .narButton a {
font-size:14px;
font-style:normal;
text-decoration:none;
}
.narrativeContent {
border-top:1px solid #CCC;
border-bottom:1px solid #CCC;
padding:5px;
}
Since there is a large number of div
/anchor
elements on the page, the goal is to avoid creating unique IDs for each, and continue to use basic CSS/JavaScript (avoid using jQuery and the like). Thoughts on how to keep this simple?
由于页面上有大量的div / anchor元素,目标是避免为每个元素创建唯一的ID,并继续使用基本的CSS / JavaScript(避免使用jQuery等)。关于如何保持这个简单的想法?
2 个解决方案
#1
0
Append these CSS
附加这些CSS
.b-mode .b, .n-mode.n {
display:block;
}
.b-mode .n, .n-mode.b {
display:none;
}
Modify onclick action
修改onclick操作
<a href="#" onclick="NorB(this,'n')">
Modify Javascript
function NorB(e, arg) {
var wrapper = e.parents('.narrative');
var rm = arg == 'n' ? 'b' : 'n';
wrapper.classList.add(arg + '-mode');
wrapper.classList.remove(rm + '-mode');
}
Object.prototype.parents = function (selector) {
if (selector.length == 0) return;
var prefix = selector.substr(0, 1);
if (prefix != '#' && prefix != '.') return;
var selector = selector.substr(1);
var p = this.parentNode;
while (p !== null) {
switch (prefix) {
case "#":
if (p.getAttribute('id') == selector) return p;
break;
case ".":
if (p.classList.contains(selector)) return p;
break;
}
p = p.parentNode;
}
return null;
};
#2
0
Parfait's script is exactly what was needed:
Parfa的脚本正是所需要的:
function NorB(e, arg) {
var wrapper = e.parents('.narrative');
var rm = arg == 'n' ? 'b' : 'n';
wrapper.classList.add(arg + '-mode');
wrapper.classList.remove(rm + '-mode');
}
Object.prototype.parents = function (selector) {
if (selector.length == 0) return;
var prefix = selector.substr(0, 1);
if (prefix != '#' && prefix != '.') return;
var selector = selector.substr(1);
var p = this.parentNode;
while (p !== null) {
switch (prefix) {
case "#":
if (p.getAttribute('id') == selector) return p;
break;
case ".":
if (p.classList.contains(selector)) return p;
break;
}
p = p.parentNode;
}
return null;
};
Learning every day, and the mentoring is greatly appreciated!
每天学习,非常感谢指导!
#1
0
Append these CSS
附加这些CSS
.b-mode .b, .n-mode.n {
display:block;
}
.b-mode .n, .n-mode.b {
display:none;
}
Modify onclick action
修改onclick操作
<a href="#" onclick="NorB(this,'n')">
Modify Javascript
function NorB(e, arg) {
var wrapper = e.parents('.narrative');
var rm = arg == 'n' ? 'b' : 'n';
wrapper.classList.add(arg + '-mode');
wrapper.classList.remove(rm + '-mode');
}
Object.prototype.parents = function (selector) {
if (selector.length == 0) return;
var prefix = selector.substr(0, 1);
if (prefix != '#' && prefix != '.') return;
var selector = selector.substr(1);
var p = this.parentNode;
while (p !== null) {
switch (prefix) {
case "#":
if (p.getAttribute('id') == selector) return p;
break;
case ".":
if (p.classList.contains(selector)) return p;
break;
}
p = p.parentNode;
}
return null;
};
#2
0
Parfait's script is exactly what was needed:
Parfa的脚本正是所需要的:
function NorB(e, arg) {
var wrapper = e.parents('.narrative');
var rm = arg == 'n' ? 'b' : 'n';
wrapper.classList.add(arg + '-mode');
wrapper.classList.remove(rm + '-mode');
}
Object.prototype.parents = function (selector) {
if (selector.length == 0) return;
var prefix = selector.substr(0, 1);
if (prefix != '#' && prefix != '.') return;
var selector = selector.substr(1);
var p = this.parentNode;
while (p !== null) {
switch (prefix) {
case "#":
if (p.getAttribute('id') == selector) return p;
break;
case ".":
if (p.classList.contains(selector)) return p;
break;
}
p = p.parentNode;
}
return null;
};
Learning every day, and the mentoring is greatly appreciated!
每天学习,非常感谢指导!