Почему fancybox показывает сразу два всплывающих окна (попапа)?

Как можно исправить ситуацию, когда по нажатию на элемент открывается два всплывающих окна, причем второе окно пустое? Что могло вызвать такое поведение скрипта? Пожалуйста, помогите разобраться. Ниже приведен участок кода, который отвечает за открытие всплывающего окна: <br/> <pre><code>var idItem="&lt;?print_r($arItem['ID']);?&gt;";
var idData='[data-id='+idItem+']';
$(idData).click(function(){

	$.fancybox.open({
		src:'#hidden'+idItem+'' ,
			type: 'inline'
});

});</code></pre>
  • 10 июня 2024 г. 12:41
Ответы на вопрос 2
Проблема с отображением двух всплывающих окон может возникать из-за того, что обработчик события click привязан к элементу несколько раз или событие click вызывается несколько раз. В вашем коде есть вероятность, что click событие вызывается несколько раз для одного элемента, что может привести к открытию нескольких всплывающих окон.

Для исправления этой ситуации рекомендуется добавить проверку, чтобы click событие привязывалось к элементу только один раз. Например, вы можете использовать метод .off() для удаления существующего обработчика события click перед привязкой нового:

```javascript
var idItem = "<?php print_r($arItem['ID']); ?>";
var idData = '[data-id=' + idItem + ']';

$(idData).off().click(function() {
    $.fancybox.open({
        src: '#hidden' + idItem,
        type: 'inline'
    });
});
```

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

Если проблема остается, возможно, есть другой код или плагин на странице, который может вызывать несколько событий click. В этом случае вам нужно просмотреть весь код на странице и проверить другие обработчики событий click, которые могут привязываться к этому элементу.
либо есть одинаковые id в списке <br/> либо этот js код дважды подключается на странице
Похожие вопросы