首页 > 解决方案 > js 函数有时只在 Firefox 中有效,但在我的其他浏览器中一直有效

问题描述

所以添加到购物车功能有时只能在Firefox中工作,但其他浏览器工作正常

更改一些监听器代码

var addToCartButtons = document.getElementsByClassName('shop-item-button')
    for (var i = 0; i < addToCartButtons.length; i++) {
        var button = addToCartButtons[i]
        button.addEventListener('click', addToCartClicked)
    }

    document.getElementsByClassName('btn-purchase')[0].addEventListener('click', purchaseClicked)
}

//-----------------


function addToCartClicked(event) {
    var button = event.target
    var shopItem = button.parentElement.parentElement
    var title = shopItem.getElementsByClassName('shop-item-title')[0].innerText

    var selectedValue = shopItem.getElementsByClassName('shop-item-list')[0]
    var selectedSize = selectedValue.options[selectedValue.selectedIndex].text

    var price = shopItem.getElementsByClassName('shop-item-price')[0].innerText
    var imageSrc = shopItem.getElementsByClassName('shop-item-image')[0].src
    addItemToCart(title, price, imageSrc, selectedSize)
    updateCartTotal()
}

function addItemToCart(title, price, imageSrc, selectedValue) {
    var cartRow = document.createElement('div')
    cartRow.classList.add('cart-row')
    var cartItems = document.getElementsByClassName('cart-items')[0]
    var cartItemNames = cartItems.getElementsByClassName('cart-item-title')
     var cartItemNames = cartItems.getElementsByClassName('cart-item-list')
    for (var i = 0; i < cartItemNames.length; i++) {
        if (cartItemNames[i].innerText == title) {
            alert('This item is already added to the cart')
            return
        }
    }

它的意思是将商品添加到购物车 https://www.jagsblast.xyz/public/rio-roller2.html

标签: javascripthtmljsonajax

解决方案


推荐阅读