我正在使用以下脚本在鼠标悬停并单击时打开一个框。在我的页面上有很多盒子要打开,还有更多要打开。我可以使这些盒子工作的唯一方法是让每个盒子制作一个新的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 内的正文中应用脚本的方式(页面由表中的许多 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>