У меня есть приложение Django, в котором я объявляю переменную внизу тега <body>
, и я пытаюсь использовать эту переменную внутри функции прослушивания событий третьей части в моем коде javascript, но она продолжает говоритьпеременная не определена.
Я пытался передать переменную в прослушиватель событий, используя .bind()
, но это тоже не работает.Я также пытался получить переменную из window.allJobsiteNames
, но она также не была определена.
<!-- index.html -->
<body>
<script type="text/javascript" src="{% static 'js/autoComplete.js' %}"></script>
<script type="text/javascript" src="{% static 'js/siren_search.js' %}"></script>
<script type="text/javascript">
var allJobsiteNames = "{{ all_jobsite_names|safe }}".replace(/'/g, '"');
</script>
</body>
// siren_search.js
$(document).ready(function () {
console.log(allJobsiteNames) // ==> prints correctly
// Add an event listener to the searchbar
document.querySelector("#searchbar").addEventListener("autoComplete", function (event) {
console.log(event.detail);
}.bind(allJobsiteNames));
// User presses enter on the search bar
$('#searchbar').on('keypress', function (event) {
addSearchSpinner(event);
});
});
// source code: https://github.com/TarekRaafat/autoComplete.js
new autoComplete({
data: {
src: allJobsiteNames, // allJobsiteNames is not defined
},
// some code
});
Точная ошибка, которую я получаю:
Uncaught ReferenceError: allJobsiteNamesне определен в siren_search.js: 261 (анонимный) @ siren_search.js: 261