Почему не работает JQuery с Pjax?

Вопросы по вёрстке и JavaScript
Ответить
wwwlopment
Сообщения: 7
Зарегистрирован: 2018.07.18, 22:45

Почему не работает JQuery с Pjax?

Сообщение wwwlopment »

Привет всем ;)
Использую Pjax в Yii2 для обновления корзины.
Есть две задачи, для решения которых использовал JQuery.
1) Нужно добавить класс .open, чтобы при удалении товара из корзины, она не сворачивалась
2) Нужно скопировать общую сумму из подвала корзины в заголовок корзины.
Код отказывается работать. Что тут не так?

Код: Выделить всё

            <!-- ============================================================= SHOPPING CART DROPDOWN ============================================================= -->
          <?php Pjax::begin(['id' => 'pjaxContent']); ?>
          <?= Html::a("Обновить", ['site/index'], ['hidden'=>true, 'id'=>'cart_update']);?>
            <div id="cart" class="dropdown dropdown-cart">
                <a href="/" class="dropdown-toggle lnk-cart" data-toggle="dropdown">

                    <div class="items-cart-inner">
                        <div class="total-price-basket">
                            <span class="lbl">Cart -</span>
                            <span class="total-price">
						<span class="sign"></span>

						<span class="value">0 грн.</span>
					</span>
                        </div>
                        <div class="basket">
                            <i class="glyphicon glyphicon-shopping-cart"></i>
                        </div>
                        <div class="basket-item-count"><span class="count">
                                <?php if (!empty($_SESSION['cart_items'])) {
                                    echo $_SESSION['cart_items'];
                                    } else {
                                    echo '0';
                                } ?>

                            </span></div>

                    </div>
                </a>
              <?php if (!empty($_SESSION['cart'])) {
                $subtotal = 0;
                $sum = 0;
                ?>
                <ul class="dropdown-menu">

                    <li>
                      <?php foreach ($_SESSION['cart'] as $id => $item) {
                          $sum = $item['quantity'] * $item['price'];
                          $subtotal = $subtotal+$sum;
                          if(isset($item['image'])) {
                          $img_url = '../../frontend/web/uploads/'.$item['image'];
                          } else {
                          $img_url = '';
                          }
                          ?>
                        <div class="cart-item product-summary">
                            <div class="row">
                                <div class="col-xs-4">
                                    <div class="image">
                                        <img class="cart-img" src="<?=$img_url?>" alt="">
                                    </div>
                                </div>
                                <div class="col-xs-7">

                                    <h3 class="name"><?=$item['title']?></h3>
                                    <div class="price"><?=$item['price']. ' грн.'?></div>
                                </div>
                                <div class="col-xs-1 action">
                                    <?= Html::a(Html::tag('i', '', ['class'=> 'fa fa-trash']).'', ['site/index', 'product_id' => $id], ['data-id'=> $id, 'class'=> 'rm_from_cart']);?>
                                </div>
                            </div>
                        </div><!-- /.cart-item -->
                        <?php } ?>

                        <div class="clearfix"></div>
                        <hr>

                        <div class="clearfix cart-total">
                            <div class="pull-right">

                                <span class="text">Sub Total :</span>
                                <span id="price_subtotal" class='price'><?=$subtotal . ' грн.'?></span>

                            </div>
                            <div class="clearfix"></div>

                            <a href="checkout.html" class="btn btn-upper btn-primary btn-block m-t-20">Checkout</a>
                        </div><!-- /.cart-total-->


                    </li>
                </ul><!-- /.dropdown-menu-->
            </div><!-- /.dropdown-cart -->
<?php } ?>
          <?php Pjax::end(); ?>
            <!-- ============================================================= SHOPPING CART DROPDOWN : END============================================================= -->

Код: Выделить всё

 
 // код срабатывает на событие по клику кнопки добавления товара, удаления товара и обновления страницы, после $(document).ready(function () 
 
 $('.value').html(function () {
        var newhtml = $('#price_subtotal').html();
        return newhtml;
    });
    
 // пробовал так,    
 $(document).find('#cart').addClass('open');
 // и так
 $('#cart').addClass('open');
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: Почему не работает JQuery с Pjax?

Сообщение andku83 »

для того чтобы корзина не закрывалась, вынесите эти строки:

Код: Выделить всё

          <?= Html::a("Обновить", ['site/index'], ['hidden'=>true, 'id'=>'cart_update']);?>
            <div id="cart" class="dropdown dropdown-cart">
выше начала pjax. И добавьте на ссылку "Обновить" pjax обработчик
Ответить