Метод `querySelectorAll` возвращает `NodeList` объект, содержащий все элементы, которые удовлетворяют указанному CSS-селектору. Он не может напрямую обрабатывать события, как это делает одиночный элемент, поэтому присвоение обработчика событий напрямую к результату `querySelectorAll` не сработает. Вместо этого вам нужно проитерировать по всем элементам, которые были получены с помощью `querySelectorAll`, и индивидуально настроить обработчик событий для каждой кнопки.
Вот пример исправленного кода:
```javascript
document.querySelectorAll('.menu-button').forEach(function(button) {
button.onclick = function () {
document.getElementById('dialog-box').style.display = 'block';
};
});
```
Этот код пройдет по всем элементам, которые имеют класс `menu-button`, и добавит каждому из них обработчик клика, открывающий блок с `id='dialog-box'`.
Полный пример, с корректным HTML и JavaScript:
**HTML**
```html
<div id="dialog-box" style="display: none;">Диалоговое окно</div>
<div class="menu-button">
<a href="#" class="menu-link">Кнопка 1</a>
</div>
<div class="menu-button">
<a href="#" class="menu-link">Кнопка 2</a>
</div>
<div class="menu-button">
<a href="#" class="menu-link">Кнопка 3</a>
</div>
<div class="menu-button">
<a href="#" class="menu-link">Кнопка 4</a>
</div>
<div class="menu-button">
<a href="#" class="menu-link">Кнопка 5</a>
</div>
<div class="menu-button">
<a href="#" class="menu-link">Кнопка 6</a>
</div>
```
**JavaScript**
```javascript
document.querySelectorAll('.menu-button').forEach(function(button) {
button.onclick = function () {
document.getElementById('dialog-box').style.display = 'block';
};
});
```
Кроме того, вместо `onclick` вы можете использовать `addEventListener()`, который позволяет добавлять несколько обработчиков на одно и тоже событие и обеспечивает большую гибкость:
```javascript
document.querySelectorAll('.menu-button').forEach(function(button) {
button.addEventListener('click', function () {
document.getElementById('dialog-box').style.display = 'block';
});
});
```
Это также лучшая практика в современном JavaScript, поскольку `addEventListener` позволяет избежать непреднамеренного перезаписывания обработчиков событий, если есть необходимость в их множественной установке.