не отрабатывает jquery в yii2 с использованием pjax

192
15 сентября 2018, 23:00

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

  
 // код срабатывает на событие по клику кнопки добавления товара, удаления товара и обновления страницы, после $(document).ready(function ()  
  
 $('.value').html(function () { 
        var newhtml = $('#price_subtotal').html(); 
        return newhtml; 
    }); 
     
 // пробовал так,     
 $(document).find('#cart').addClass('open'); 
 // и так 
 $('#cart').addClass('open');
          <!-- ============================================================= 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============================================================= -->

Answer 1

Нашел решение. Нужно навешать событие на завершение pjax. Так как елементы обновляются.

$(document).on('ready pjax:success', function() {
}
READ ALSO
Локальные переменные jQuery

Локальные переменные jQuery

В такой записи обе функции будут "видеть" только свои переменные, если есть две и тд

181
Проверка массива на дубликаты при вводе в поле

Проверка массива на дубликаты при вводе в поле

Подскажите, есть массив itemSource, мне нужно при вводе в поле Name_Page проверять массив на дубликаты и выводить сообщение, если они появляются:

163
Неверно определяет движение курсора

Неверно определяет движение курсора

Скрипт ловит движение курсора при зажатой ЛКМ вверх и вниз, но не каждый раз корректноПару движений видит корректно, следующие определяет...

175
WPF C# Отображение объектов на Canvas (2d Map)

WPF C# Отображение объектов на Canvas (2d Map)

Задача: Создать приложение "Создание карт исследований месторождений"1) Есть панель, на панели расположены кнопки с изображением которое...

221