我正在使用以下腳本在鼠標懸停並單擊時打開一個框。 在我的頁面上有很多可以打開的盒子,還有更多。 我可以使這些盒子工作的唯一方法是爲每個盒子做一個新的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