Op mijn website gebruik ik een aantal scriptjes om clientside gegevens te valideren en om de layout wat te verfraaien. In de laatste categorie heb ik onder andere een scriptje dat de DOM doorloopt op fieldsets met class 'collapsible', zodat ik er een event aan kan hangen om de fieldset in/uit te klappen.
Een paar dagen geleden heb ik jQuery gedownload en ben er wat mee gaan rommelen. Mijn vraag is nu: moet ik deze code nu via jQuery API gaan herschrijven? En waar kan ik voorbeelden vinden van naar Query herschreven code?
Een paar dagen geleden heb ik jQuery gedownload en ben er wat mee gaan rommelen. Mijn vraag is nu: moet ik deze code nu via jQuery API gaan herschrijven? En waar kan ik voorbeelden vinden van naar Query herschreven code?
JavaScript:
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
55
56
57
58
59
60
61
| function collapseAutoAttach() { var fieldsets = document.getElementsByTagName('fieldset'); var legend, fieldset; for (var i = 0; fieldset = fieldsets[i]; i++) { if (hasClass(fieldset, 'collapsible')) { legend = fieldset.getElementsByTagName('legend'); legend = legend[0]; var a = document.createElement('a'); a.href = '#'; a.onclick = function() { toggleClass(this.parentNode.parentNode, 'collapsed'); toggleFieldSet(this.parentNode.parentNode); this.blur(); return false; } a.innerHTML = legend.innerHTML; while (legend.hasChildNodes()) { removeNode(legend.childNodes[0]); } legend.appendChild(a); collapseEnsureErrorsVisible(fieldset); } } } function toggleFieldSet(node) { var legend = node.getElementsByTagName('legend'); var field = legend[0].childNodes[0].childNodes[0].nodeValue; var expandedFieldSets = {}; var cookiecontent = getCookie('expandedFieldSets'); if (cookiecontent !== null) { var temp = cookiecontent.split(','), i = temp.length; while (i--) expandedFieldSets[temp[i]] = 1; } if (field in expandedFieldSets) delete(expandedFieldSets[field]); else expandedFieldSets[field] = 1; var temp = []; for (var fieldset in expandedFieldSets) { if (!Object.prototype[fieldset]) temp.push(fieldset); } setCookie('expandedFieldSets', temp.join(',')); } function collapseEnsureErrorsVisible(fieldset) { if (hasClass(fieldset, 'collapsed')) { return; } var inputs = []; inputs = inputs.concat(fieldset.getElementsByTagName('input')); inputs = inputs.concat(fieldset.getElementsByTagName('textarea')); inputs = inputs.concat(fieldset.getElementsByTagName('select')); for (var j = 0; j<3; j++) { for (var i = 0; i < inputs[j].length; i++) { if (hasClass(inputs[j][i], 'error')) { return removeClass(fieldset, 'collapsed'); } } } } addLoadEvent(collapseAutoAttach); |
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."