我正在使用以下脚本在鼠标悬停并单击时打开一个框。 在我的页面上有很多可以打开的盒子,还有更多。 我可以使这些盒子工作的唯一方法是为每个盒子做一个新的togTrigger。即使同一个单词在页面上的不同位置打开同一个框,我需要一个新的togTrigger。最终我会以toGTrigger1结束togTrigger200或其他事情。这不是很实际。 有什么办法可以减少需要的触发器数量?任何方式来减少所需的togTriggers的数量?
<script type="text/javascript">
<!-- HIDE FROM OLD BROWSERS
/* <![CDATA[ */
var oVTog = {
toggle: function (el) {
var container = el.parentNode;
var para = container.getElementsByTagName('p')[0];
para.style.display = "none";
var isClicked = false;
el.onmouseover = function() {
para.style.display = '';
return false;
};
el.onmouseout = function() {
if (!isClicked)
para.style.display = 'none';
return false;
};
el.onclick = function() {
// if it's clicked, change it to TRUE
// if it's clicked again, change it back to FALSE
isClicked = !isClicked; // toggle
para.style.display = ((isClicked) ? '' : 'none');
return false;
};
}
};
window.onload = function() {
var l = document.getElementById('togTrigger');
oVTog.toggle(l);
l = document.getElementById('togTrigger2');
oVTog.toggle(l);
l = document.getElementById('togTrigger3');
oVTog.toggle(l);
l = document.getElementById('togTrigger4');
oVTog.toggle(l);
l = document.getElementById('togTrigger5');
oVTog.toggle(l);
l = document.getElementById('togTrigger6');
oVTog.toggle(l);
l = document.getElementById('togTrigger7');
oVTog.toggle(l);
l = document.getElementById('togTrigger8');
oVTog.toggle(l);
l = document.getElementById('togTrigger9');
oVTog.toggle(l);
l = document.getElementById('togTrigger10');
oVTog.toggle(l);
l = document.getElementById('togTrigger11');
oVTog.toggle(l);
};
/* ]]> */
//END HIDING -->
</script>
我这是怎么应用专区内体内的脚本(页面做出来很多的div的表内,/ p应该不会是一个div内,虽然,但它工作):
<a href="#" id="togTrigger"><i>text</i></a>
<p class="togContent">
text
</p>
当有同一div内的两个或多个文本框,其他togTriggers是一个跨度内:
<span><a href="#" id="togTrigger4"><i>text</i></a>
<p class="togContent">
text
</p></span>
怎么样按班级而不是ID选择?也就是说,如果你将所有的id ='togTriggerXX'元素放入class ='togTrigger'中,会发生什么。然后你可以使用document.querySelectorAll('。togTrigger')或document.getElementsByClassName('togTrigger')(第一个好处是你可以在容器元素上调用它,所以你只需要定位它所包含的元素。也可以在文档元素上调用它,使用'#idContainer .toggleTriggerClassName')然后您将获得一个nodeList。您可以遍历列表,在每个元素上调用oVTog.toggle。 – enhzflep 2013-03-21 10:57:04
我需要一个代码示例,因为我对javascript的知识非常有限 – Martijn 2013-03-21 11:12:13