Я изо всех сил пытаюсь заставить это работать, потому что я не знаю правильного форматирования.
Я пытаюсь получить модальное окно CSS для отображения в зависимости от того, что пользователь выбирает в качестве значения в апплете Javascript.
Идея состоит в том, чтобы вернуть .style.display = "block";
function onClick(event){
<something>.style.display = "block";
}
Где содержит значение, которое было сохранено в формате перекрестков [0] .object.title
Так что если, например, я выбрал "манхэттен"
alert(intersects[0].object.title)
Я добьюсь того, чтобы строка "манхэттен" отображалась правильно. Это прекрасно работает.
Но я не могу получить manhattan.style.display = "block"; вернулся и РАБОТАЕТ внутри функции? Я пытался :
function onClick(event){
intersects[0].object.title.style.display = "block";
}
Также пробовал
function onClick(event){
(intersects[0].object.title).style.display = "block";
}
Любая помощь будет принята с благодарностью



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Дайте вам div какой-нибудь идентификатор, а затем просто измените его:
<div id = "test"></div>
document.getElementById("test").style["display"] = "block";
or
document.getElementById("test").style.display = "block";
or
document.getElementById("test").style.setProperty('display', 'block');
or
document.getElementById("test").setAttribute('display', 'block');
Возможно, это не совсем то, что вы ищете, но все равно может помочь. Чтобы он работал в вашем случае, просто измените нажатие кнопки на проверку выбранного значения.
Вместо того, чтобы напрямую настраивать CSS, этот маршрут изменяет classList элемента, чтобы удалить или добавить класс .hidden, содержащий правильный CSS.
// Loop through all modal buttons
document.querySelectorAll('.modal-button').forEach(function(element) {
// Add a click event listener to all modal buttons
element.addEventListener('click', function() {
// Toggle the target modal on click
toggleModal(element.dataset.target);
});
});
// Create the function to toggle the modals
function toggleModal(target) {
// Find the target
let targetElement = document.querySelector(target);
// Check if the target is hidden
if (targetElement.classList.contains('hidden')) {
// If it is, show it
targetElement.classList.remove('hidden');
} else {
// If it isn't, hide it
targetElement.classList.add('hidden');
}
}.hidden {
display: none;
}<button data-target = "#modal" class = "modal-button">Toggle Modal</button>
<div id = "modal" class = "hidden">Hey there, I'm a modal!</div>Я не уверен в вашем вопросе, как части вашей головоломки связаны друг с другом, и было бы полезно, если бы вы могли уточнить, показав больше вашего кода HTML и Javascript, но я подброшу вам пару идей. в это время. Прошу прощения, если я рассказываю вам то, что вы уже знаете.
Единственный тип объекта, для которого обычно можно установить style.display, - это элемент HTML. Чтобы указать Javascript, какой элемент HTML вы хотите изменить, вы обычно используете селектор CSS, например "document.getElementById ('myDiv')"
Похоже, что «манхэттен» может быть частью информации, которую вы могли бы использовать для уникальной идентификации HTML-элемента, который вы собираетесь показать. Если да, то есть четыре простых части, чтобы показать правильный элемент:
Все вместе это может выглядеть так:
<div id = "manhattan"></div>
<script>
var identifier = intersects[0].object.title;
alert(identifier) //I'm assuming this alerts "manhattan"
var elementToShow = document.getElementById(identifier);
elementToShow.style.display = "block";
</script>
Это на правильном пути? Если нет, просто расскажите подробнее, и я посмотрю, что еще я могу предложить.
Привет, Кот. Да, у нас такая же логика. Я понял, что на моем конце произошла ошибка, когда ваша 4-я строка (предупреждение (идентификатор)) не отображала манхэттен. Я открыл консоль Chrome и увидел эту ошибку: Uncaught TypeError: Невозможно прочитать свойство length of undefined в HTMLDocument.onClick Я пытаюсь разобраться с этим сейчас, так как думаю, что ваш код находится на правильном месте, но что-то не так с пересечениями [ 0] .object.title В настоящее время читает stackoverflow.com/questions/12194435/… для подсказок
ОБНОВЛЕНИЕ: это было решено с помощью альтернативного метода - оказалось, что возникла проблема с поиском значения crosscts [0] .object.title до того, как оно было определено.