ФорумПрограммированиеJavaScript → Проблема с attr

Проблема с attr

  • developer

    Сообщения: 241 Репутация: N Группа: Кто попало

    Spritz 22 июля 2016 г. 3:07

    showValues создает кнопку Купить, в html уже есть select с выбором параметров, при изменении в нем значении #selectsize определяет их и заменяет в кнопке купить data-fancybox-href, но прикол в том что делает это оно все максимум 1 раз после загрузки страницы. После того как кнопка Купить нажал, data-fancybox-href больше не заменяется и добавляется в корзину с тем же размером что и ранее. Хотя судя по экспектору кода в FF оно меняет значение, но в корзину упорно идет то что было первое добавлено. Оно как-то не так дружит с fancybox?

    $(document).ready(function() {
    
        function showValues() {
            var idquantity = $("input[name='cart_quantity']").val();
            var idfield = $("input[name='products_id']").val();
            var idvalue = $("#selectsize").val();
            var idname = $("#selectsize").attr('name');
            $("#addtocart").append('<button class="btn btn-lg btn-primary" id="addcart" data-fancybox-type="iframe" data-fancybox-href="index.php?products_id='+idfield+'&cart_quantity='+idquantity+'&action=add_product&'+idname+'='+idvalue+'"><span class="glyphicon glyphicon-shopping-cart"></span> Купить</button>');
            return false;
        }
        showValues();
    
        $("#selectsize").change(function(){
            var idquantity = $("input[name='cart_quantity']").val();
            var idfield = $("input[name='products_id']").val();
            var idvalue = $("#selectsize").val();
            var idname = $("#selectsize").attr('name');       
            $("#addcart").attr('data-fancybox-href', 'index.php?products_id='+idfield+'&cart_quantity='+idquantity+'&action=add_product&'+idname+'='+idvalue+'');     
        });
    
        $("#addcart").fancybox();
    
    ...
  • Sinkler

    Сообщения: 8086 Репутация: N Группа: в ухо

    Spritz 22 июля 2016 г. 6:08, спустя 3 часа 1 минуту 3 секунды

    @developer, ну я так понимаю после того как ты делаешь

    $("#addcart").attr('data-fancybox-href', '')

    надо реинициализировать fancybox, да и всё, чтобы он новый href подхватил

  • developer

    Сообщения: 241 Репутация: N Группа: Кто попало

    Spritz 22 июля 2016 г. 8:59, спустя 2 часа 50 минут 40 секунд

    Добавлял

    $("#addcart").fancybox();
    

    после

    $("#addcart").attr('data-fancybox-href', '')

    Пробовал даже всю функцию выносить за
    $(document).ready(function() {

    но оно по прежнему добавляет только то что было добавлено в первый раз

  • developer

    Сообщения: 241 Репутация: N Группа: Кто попало

    Spritz 22 июля 2016 г. 9:13, спустя 14 минут 8 секунд

    Сделал так:

    ...
        $("#selectsize").change(function(){
            $("#addcart").remove();
            showValues();
        });
    ...

    "по дибильному текст написан"

Пожалуйста, авторизуйтесь, чтобы написать комментарий!