-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathplantilla.js
47 lines (44 loc) · 1.45 KB
/
plantilla.js
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
/* jshint esversion: 6 */
class Menu {
constructor() {
this.opcions = [];
}
/**
*
* @param {string} nombreOpcion nombre que se motrara en el menu
* @param {string} url url dondo se direcciona el enlace
*/
agregarOpcion(nombreOpcion, url) {
this.opcions.push({ nombreOpcion: nombreOpcion, url: url });
}
/**
*
* @param {array} opciones se agregan opciones dentro de una array,
* el orden debe ser: cada opcion dentro de otro array, primero el nombre luego la url
*/
agregarOpciones(opciones) {
opciones.forEach(opcion => {
this.opcions.push({ nombreOpcion: opcion[0], url: opcion[1] });
});
}
/**
*
* @param {string} idMenu nombre de id del contenedor donde ira el menu
*/
renderizar(idMenu) {
let codigoHTML = '';
codigoHTML = '<ul>';
this.opcions.forEach(opcion => {
if (location.pathname === opcion.url) {
codigoHTML += `<li><a class="menu-principal__seccion--active" href="${opcion.url}">${opcion.nombreOpcion}</a></li>`;
} else {
codigoHTML += `<li><a href="${opcion.url}">${opcion.nombreOpcion}</a></li>`;
}
});
codigoHTML += '</ul>';
document.querySelector('#' + idMenu).innerHTML = codigoHTML;
}
}
export {
Menu,
};