Precise Button element identifiers

This commit is contained in:
Francisco Hodge 2018-10-06 02:25:04 -04:00
parent c980024e71
commit 5e5c1c4abe

View File

@ -285,7 +285,7 @@ class SimpleKeyboard {
/**
* Iterating through each row
*/
layout[this.options.layoutName].forEach((row) => {
layout[this.options.layoutName].forEach((row, rIndex) => {
let rowArray = row.split(' ');
/**
@ -297,6 +297,7 @@ class SimpleKeyboard {
/**
* Iterating through each button in row
*/
rowArray.forEach((button, bIndex) => {
let fctBtnClass = this.utilities.getButtonClass(button);
let buttonThemeClass = buttonThemesParsed[button];
let buttonDisplayName = this.utilities.getButtonDisplayName(button, this.options.display, this.options.mergeDisplay);
@ -308,6 +309,18 @@ class SimpleKeyboard {
buttonDOM.className += `hg-button ${fctBtnClass}${buttonThemeClass ? " "+buttonThemeClass : ""}`;
buttonDOM.onclick = () => this.handleButtonClicked(button);
/**
* Adding identifier
*/
buttonDOM.setAttribute("data-skBtn", button);
/**
* Adding unique id
* Since there's no limit on spawning same buttons, the unique id ensures you can style every button
*/
let buttonUID = `${this.options.layoutName}-r${rIndex}b${bIndex}`;
buttonDOM.setAttribute("data-skBtnUID", buttonUID);
/**
* Adding button label to button
*/
@ -324,10 +337,9 @@ class SimpleKeyboard {
this.buttonElements[button].push(buttonDOM);
/**
* Calling onInit
* Appending button to row
*/
if(typeof this.options.onInit === "function")
this.options.onInit();
rowDOM.appendChild(buttonDOM);
});