Во-первых, есть функция, которая создает уникальную функцию переключения для любого элемента вы даете ему. Затем мы ждем загрузки окна, и когда это произойдет, мы создаем некоторые функции переключения. В этом примере мы предполагаем, что у вас есть элемент с id = 'some_id', но вы можете использовать все, что вам нужно для получения элемента. Затем мы привязываем функцию переключения в глобальную переменную.
// returns a function that will toggle the given element
function makeToggleFunction(el) {
var element = el;
return function() {
if (element.style.display == 'none')
element.style.display = 'block';
else
element.style.display = 'none';
};
}
window.addEventListener('load', on_window_load, false);
var GLOBAL = {};
function on_window_load() {
GLOBAL.toggle_element = makeToggleFunction(document.getElementById('some_id'));
}
Вы можете затем переключить элемент всякий раз, когда вам нужно, с GLOBAL.toggle_element()
.
Кроме того, я думаю, что это код для IE, если вы хотите дождаться загрузки страницы.
document.addEventListener("DOMContentLoaded", on_window_load, false);
EDIT:
Добавьте эту функцию (от http://www.dustindiaz.com/getelementsbyclass/ в mentioed по programatique)
function getElementsByClass(searchClass,node,tag) {
var classElements = new Array();
if (node == null)
node = document;
if (tag == null)
tag = '*';
var els = node.getElementsByTagName(tag);
var elsLen = els.length;
var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
for (i = 0, j = 0; i < elsLen; i++) {
if (pattern.test(els[i].className)) {
classElements[j] = els[i];
j++;
}
}
return classElements;
}
А затем добавьте следующий внутри функции on_window_load
:
GLOBAL.toggleable = new Array();
or each(var element in getElementsByClass('toggle')) {
GLOBAL.toggleable.push(makeToggleFunction(element));
}
GLOBAL.toggle_all = function() {
for each(var f in GLOBAL.toggleable) {
f.call();
}
};
И теперь вы можете позвонить GLOBAL.toggle_all()
и скрыть все элементы, имеющие класс toggle
.
что вы хотите от нас? – Rihards
Ах, вы добавили новое требование, указывающее отсутствие строк, пока я отправлял свой ответ. Я обновляю свой ответ с помощью решения, которое не использует встроенный javascript. – Jeff
Почему нет встроенного javascript ??? – galambalazs