este es el código para (cart.js) en la carpeta static/js
var updateBtns = document.getElementsByClassName('update-cart') for (i = 0; i < updateBtns.length; i++) { updateBtns[i].addEventListener('click', function(){ var productId = this.dataset.product var action = this.dataset.action console.log('productId:', productId, 'Action:', action) }) }y en el archivo HTML en la parte inferior:
<button data-product="{{ product.id }}" data-action="add" class="update-cart btn btn-outline-secondary add-btn ">Add to Cart</button>y llama al js en main.html
<script type="text/javascript" src="{% static 'js/cart.js' %}"> </script>y agrego static en el setting.py, y todo correcto.
y todo funciona bien, cuando intento (console.log) sin un evento de clic de botón... el problema es solo con el evento de botón porque no funciona
Su pregunta no está relacionada con Django. Parece que no utiliza JavaScript correctamente. Cuando el navegador ejecuta el código de card.js, el árbol HTML DOM aún no está construido. Para adjuntar eventos JS, debe cambiar el código cart.js a:
function initUpdateBtns() { var updateBtns = document.getElementsByClassName('update-cart') for (i = 0; i < updateBtns.length; i++) { updateBtns[i].addEventListener('click', function(){ var productId = this.dataset.product var action = this.dataset.action console.log('productId:', productId, 'Action:', action) }) } } document.addEventListener('DOMContentLoaded', initUpdateBtns)