Проблема в том, что используемый вами синтаксис шаблонов (ie. {% static 'images/user_selected.png' %}
) не будет интерпретироваться в файле JS.
Чтобы обойти это, вы можете поместить изображение источники в атрибутах data
в img
в HTML, которые затем могут быть прочитаны во внешнем JS, например:
jQuery($ => {
$('#user').hover(function() {
$(this).children('img').prop('src', function() {
return $(this).data('over');
});
}, function() {
$(this).children('img').prop('src', function() {
return $(this).data('leave');
});
});
});
<a id="user" href="#">
<img src="{% static 'images/user.png' %}" data-over="{% static 'images/user_selected.png' %}" data-leave="{% static 'images/user.png' %}" height="14px" width="14px" id="user-icon" />
<span id="user-name">{{request.user.username}}</span>
</a>