Показать сообщение отдельно
  #1 (permalink)  
Старый 15.12.2022, 21:23
Профессор
Отправить личное сообщение для ufaclub Посмотреть профиль Найти все сообщения от ufaclub
 
Регистрация: 27.11.2010
Сообщений: 202

заблокировать клик по ссылке до полной загрузки страницы
есть такой кусок кода (выкладываю его часть)

$(window).on('load', function() {

	
  $('.modal-catalog-item').on('show.bs.modal', function (e) {
	  
	  
    var $modal = $(this),
      $btn = $(e.relatedTarget);

    var id = $btn.data('catalog-item-id');

    $.ajax({
      url: '/inc/catalog/item.php',
      method: 'GET',
      data: {
        'id': id
      },
      success: function (response) {
		  
		 

		  
        $modal.find('.modal-body').html(response);
        $modal.find('.modal-title').html($(".origtitle").html());
		
		

	 $modal.find('.carousel').each(function () {
          new bootstrap.Carousel(this);
        });
		
		
		




	
  $('.modal-catalog-item').on('shown.bs.modal', function (e) {

    var $modal = $(this);

    $modal.find('.modal-catalog-item-slider-main').slick({
      slidesToShow: 1,
      slidesToScroll: 1,
      arrows: false,
      asNavFor: '.modal-catalog-item-slider-nav',
      lazyLoad: 'ondemand',
	  infinite: false,
      swipe: false
    });

	
  });
  
  
  	
		
      }
	  
	  
	  
    });
  });


});



по сути он на ссылку a.modal-catalog-item открывает модальное окно

передавая параметры на генерацию содержимого к примеру

data-catalog-item-id="26"



<a class="btn-modal-catalog-item" data-bs-toggle="modal" data-bs-target=".modal-catalog-item" data-catalog-item-id="26">

тут содержание блока

</a>


так вот если внутри блока достаточно много информации слайдер к примеру то это все грузится какое то время на слабом интернете пару секунд

и если в эти пару секунд нажать на ссылку то открывается модальное окно и ничего не погружается

скрипт подключен в конце сайта </body>

но вот если дождаться полной загрузки всех картинок чтобы страница полностью прогрузилась то все ок.

т.е как то надо заблокировать нажатие на ссылки в момент когда грузится страница

думал обернув

$(window).on('load', function() {}


я как раз и должен был получить что выполнение . т.е открытие модальных ссылок будет происходить после полной загрузки страницы

но как понял это не работает.

может есть какой то вариант еще сделать недоступными клик по ссылке

a class="btn-modal-catalog-item"

перекрывать слоем z-index а потом его снимать как то не хотелось бы

может из кода удалить data-bs-toggle="modal" и как то его назначить только в конце загрузки страницы.

т.е походу сейчас в момент пока еще скрипт не загружен событие data-bs-toggle="modal" вызывает открытие пустого окна без параметров генерации контента. (которые задаются в скрипте ниже)

помогите пожалуйста кто знает специфику модальных окон на bootstrap 5.2
Ответить с цитированием