Калидҳои модификаторро дар JavaScript пайгирӣ кардан
Бо ёрии объекти Event шумо метавонед маълум кунед,
ки оё калидҳои Ctrl,
Alt ва Shift дар лаҳзаи рухдод фишурда шуда буданд ё не. Ин бо
ёрӣ аз хусусиятҳои ctrlKey, altKey
ва shiftKey анҷом дода мешавад - онҳо арзиши true
ё false доранд, ки ба он вобаста аст, ки оё
ин калид дар лаҳзаи рухдод фишурда шуда буд ё не.
Биёед ба мисол нигарем. Фарз кунем, ки тугмаи зерин ба мо дода шудааст:
<button id="elem">матн</button>
Дар замири клик кардан ба тугма, мо паёмеро чоп мекунем,
ки оё яке аз калидҳои Ctrl,
Alt ва Shift фишурда шуда буд:
let elem = document.querySelector('#elem');
elem.addEventListener('click', function(event) {
if (event.ctrlKey) {
console.log('Ctrl фишурда шуд');
}
if (event.altKey) {
console.log('Alt фишурда шуд');
}
if (event.shiftKey) {
console.log('Shift фишурда шуд');
}
});
Элемент дода шудааст. Чунон созед, ки дар замири клик кардан
ба он, он ба рангоби сурх ранг карда шавад, вале танҳо
агар дар лаҳзаи клик калиди Alt фишурда бошад.
Фарз кунем, ки шумо рӯйхати ul бо тегҳои
li доред:
<ul id="elem">
<li>матн</li>
<li>матн</li>
<li>матн</li>
<li>матн</li>
<li>матн</li>
</ul>
Чунон созед, ки дар замири клик кардан ба ягон li,
ба охири матни он рақами 1 илова карда шавад,
агар калиди Ctrl фишурда бошад, ва рақами
2, агар калиди Shift фишурда бошад.