1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| var FC = {// 5, 7)
DOM: {
getElementsByClassName: function(classe, noeud, balise) {
var elements = [];// 2)
if (document.getElementsByClassName) { elements = document.getElementsByClassName(classe); }
else {
if (noeud === undefined || noeud === null) { noeud = document; }// 3, 8)
if (balise === undefined || balise === null) { balise = "*"; }
var elementsAParcourir = noeud.getElementsByTagName(balise);// 2)
var pattern = new RegExp("(^|\\s)" + classe + "(\\s|$)");
for (var i = 0, imax = elementsAParcourir.length; i < imax; i++) {
if (pattern.test(elementsAParcourir[i].className)) { elements.push(elementsAParcourir[i]); }
}
}
return elements;
}
},
Evenement: {
ajouter: function(elm, evt, fn) {
if (document.addEventListener) {
if (elm.nodeType===1 || elm.nodeType===9) { // 8)
elm.addEventListener(evt, function(e) {
if (!fn(e)) { e.preventDefault(); }
}, false);
} else {
for (var i = 0, imax = elm.length; i < imax; i++) {// 4)
elm[i].addEventListener(evt, function(e) {
if (!fn(e)) { e.preventDefault(); }
}, false);
}
}
} else if (document.attachEvent) {
if (elm.nodeType===1 || elm.nodeType===9) {
var r = elm.attachEvent("on" + evt, fn);
return r;
} else {
for (var i = 0, imax = elm.length; i < imax; i++) {
var r = elm[i].attachEvent("on" + evt, fn);
return r;
}
}
}
}
}
};
FC.Evenement.ajouter(document, "click", function(e) {// 6, 7)
var elm = e.target || event.srcElement;
if (elm.className.indexOf("div")==-1) {
var elms = FC.DOM.getElementsByClassName("div");
for (var i=0, imax=elms.length;i<imax;i++) {
elms[i].style.display="none";
}
}
}); |
Partager