Очевидно, что вы main.js
измените содержимое и, таким образом, повторно отстаиваете событие дважды.
Один из вариантов - добавить глобальное поле в html, помеченное как false
, и копать в свой main.js
найти фрагмент кода, который вызывает у вас проблемы, например,
//In HTML
<data style="display:none" id="flag" value="0" />
//In main.js
$('#flag').val("1");
//...Part causes trouble
$('#flag').val("0");
//eventListener
document.addEventListener('swup:contentReplaced', event => {
if $('#flag').val() == "0"{
$.getScript("/js/main.js");
}
});
Но это может не решить проблему, так как у вас могут возникнуть проблемы с поиском проблемной части (скажем).
Тогда более удобный способ - использовать once
document.addEventListener('swup:contentReplaced', event => {
$.getScript("/js/main.js");
}, {once:true});
и в конце main.js
, также добавить эту строку .
И, таким образом, каждый разВы можете вызвать $.getScript("/js/main.js");
только один раз, и сразу после выполнения main.js
вы добавляете событие назад.