Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Ошибка: modal_plan.js:8 Uncaught TypeError: Cannot set property 'onclick' of null (https://javascript.ru/forum/misc/69192-oshibka-modal_plan-js-8-uncaught-typeerror-cannot-set-property-%27onclick%27-null.html)

ZHMEN 05.06.2017 00:55

Ошибка: modal_plan.js:8 Uncaught TypeError: Cannot set property 'onclick' of null
 
Здравствуйте всем, многоуважаемые!
Хочу модифицировать один php скрипт для Joomla - вывести картинку в модальном окне.
Оригинальный вывода картинки код такой:
<div class="spproperty-floor-img">
<img alt="" src="<?php echo JUri::root() . $floor_plan['img']; ?>">
</div>


Собственно пытаюсь сделать по аналогии с примером как здесь:
https://www.w3schools.com/howto/howt...dal_images.asp

Ниже мой код:
==Javascript ==
// Get the modal
var modal = document.getElementById('myModal');

// Get the image and insert it inside the modal - use its "alt" text as a caption
var img = document.getElementById('myImg');
var modalImg = document.getElementById("img01");
var captionText = document.getElementById("caption");
img.onclick = function(){ 
    modal.style.display = "block";
    modalImg.src = this.src;
    captionText.innerHTML = this.alt;
}

// Get the <span> element that closes the modal
var span = document.getElementsByClassName("close")[0];

// When the user clicks on <span> (x), close the modal
span.onclick = function() { 
  modal.style.display = "none";
}


==HTML+PHP==
<div class="spproperty-floor-img">
<img id="myImg" alt="" src="<?php echo JUri::root() . $floor_plan['img']; ?>">
<div id="myModal" class="modal">
<span class="close" onclick="document.getElementById('myModal').style.display='none'">&times;</span>
<img class="modal-content" id="img01">
<div id="caption"></div>
</div>
</div>


Вроде все сделал как в примере, но скрипт не срабатывает, а в консоли появляется такая ошибка:
Uncaught TypeError: Cannot set property 'onclick' of null
Ссылается на эту строку:
img.onclick = function(){

Если выполнить скрипт отдельно (к примеру локально, на компе) то все работает.
В чем может быть проблема?
Помогите, пожалуйста! Буду очень признателен.
Заранее спасибо!

рони 05.06.2017 01:00

ZHMEN,
возможно нет ещё картинки - скрипт вставить ниже

ZHMEN 05.06.2017 01:15

Цитата:

Сообщение от рони (Сообщение 454514)
ZHMEN,
возможно нет ещё картинки - скрипт вставить ниже

Да даже подставлял абсолютный путь к картинке, все равно не работает (
По идее в данном контексте картинка достается из базы и она появляется в нужном месте, но не выводится в модальное окно.

рони 05.06.2017 01:37

Цитата:

Сообщение от ZHMEN
Да даже подставлял абсолютный путь к картинке

сложноуловимая связь ...
вы скрипт вниз страницы ставили?

ZHMEN 05.06.2017 02:14

Цитата:

Сообщение от рони (Сообщение 454520)
сложноуловимая связь ...
вы скрипт вниз страницы ставили?

Спасибо! Разобрался.
Вынес этот скрипт в главный js шаблона и все заработало.
Странно, но за загрузку скриптов для этого компонента отвечает другой файл, в котором и подключаются они. И сначала он загружается, а потом уже этот.


Часовой пояс GMT +3, время: 19:33.