Jump to content

daggi

User
  • Posts

    87
  • Joined

  • Last visited

Posts posted by daggi

  1. Всем привет.

    При клике (добавляю active к label) делает активными все элементы, а не текущий? Как быть?

     

    $(document).on('change', '.compare-control', function(){
          var id = $(this).val();
          var url = '/?action=DELETE_FROM_COMPARE_LIST&ajax_action=Y&id='+id;
    
          if ($(this).prop('checked')) {
             url = '/?action=ADD_TO_COMPARE_LIST&ajax_action=Y&id='+id; 
    								   }
          $.get(url, function() {
             BX.onCustomEvent('OnCompareChange');
          });
    		 
     // здесь беда!!!при клике на элемент, делает элементы все активными, а не текущий.	
      if($('.catalog-content-main-item-top-fav').hasClass('active')) {
            $('.catalog-content-main-item-top-fav').removeClass('active');
    		}else{
    		 $('.catalog-content-main-item-top-fav').addClass("active");
    		}  
    	 		 
    });
    BX.addCustomEvent('onCatalogDeleteCompare', function(id) {
      $('.compare-control[value="'+id+'"]').prop('checked', false);
    });

    Код html:

    <label class="catalog-content-main-item-top-fav <?= array_key_exists($arItem['ID'], $_SESSION["CATALOG_COMPARE_LIST"][5]['ITEMS'])?'active':''?>" >	
    <input onclick="function f(e) { e.preventDefault();}" style="display: none" type="checkbox" value="<?=$arItem['ID'];?>" class="compare-control" <? if(isset($_SESSION['CATALOG_COMPARE_LIST']['5']['ITEMS'][$arItem['ID']])):?> checked="checked" <? endif;?>>
    	        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
                    <path d="M12.2536 19.2043L12 19.055L11.7464 19.2043L5.28009 23.0103L6.73156 15.3278L6.78144 15.0638L6.58881 14.8765L1.09502 9.53481L8.50172 8.61114L8.7836 8.57598L8.89772 8.31586L12 1.24455L15.1023 8.31586L15.2164 8.57598L15.4983 8.61114L22.905 9.53481L17.4112 14.8765L17.2186 15.0638L17.2684 15.3278L18.7199 23.0103L12.2536 19.2043Z" fill="white" stroke="#E09B3D"/>
                </svg>
    </label>

    а этот код срабатывает только после перезагрузки страницы:  <?= array_key_exists($arItem['ID'], $_SESSION["CATALOG_COMPARE_LIST"][5]['ITEMS'])?'active':''?>

     

  2. 14 часов назад, andrey7287 сказал:

    На вскидку. Проверяйте марджины у абсолютно позиционированных элементов. 

    из за прагает line-height на айфоне , а так на десктопе все равно все четко. пришлось вместо line-height паддаингами выровнять.

  3. Переключение телефонов по клику адреса(выбор адреса из списка)  пример http://prntscr.com/h5948m

    Т.е. когда кликаешь на адрес из списка меняется телефон и емайл в шапке

    Как сделать такой скрипт на js?

  4. Как сохранить прямоугольные формы пунктов меню при изменении разрешения экранов? http://oilcity.su/   

    Конечно можно просто медиа запросами за счет падингов, но может есть более универсальное решение?

  5. скорее form - это id формы

    $('#vbs input[type=radio]:first').attr({'checked':true});
    у вас получается слишком замудренно

    Сделайте одну форму с input type="radio" и табличкой:

    <form><input type="radio" name="premium" checked><input type="radio" name="standart"><input type="radio" name="econom"><div id="name"></div><table>...</table></form>
    При нажатии на марку машины показываете форму и заполняете ее из массива данных:

    в #name вставляете марку машины инпутам с соответствующими name заполняете onclick

    еще проще было бы это сделать в виде табов, т.к. данные у вас уже все есть

     

    Что то мне не протестировать этот вариант с загрузкой страницы с заполненой формой по умолчанию

  6. а checked не здесь нужно устанавливать, а при вызове формы, на вроде этого

    $('form input[type=radio]:first').attr({'checked':true})

    Типа на онлоэд повесить ?

    $('#vbs').on('change', function(){    $('form input[type=radio]:first').attr({'checked':true});});

    где vbs id формы

  7.  

    не заметно.

    почему у вас на сайте

    window.calc = function(data_array){for(var n in data_array){var data = $('[data-id='+n+']');$(data).find('.names').html(data_array[n]['names']);$(data).find('.sht').html(data_array[n]['sht']);$(data).find('.ocen').html(data_array[n]['ocen']);}var sum = 0;$(".ocen").each( function () {sum += parseInt( $(this).text(), 10 );});$('.summ').html(sum);}

    Я так понял тут chacked просто не установить, чтобы данные выбирались первого radio по умолчанию? пробовал load, что то не помогло.

  8.  

    не заметно.

    почему у вас на сайте

    window.calc = function(data_array){for(var n in data_array){var data = $('[data-id='+n+']');$(data).find('.names').html(data_array[n]['names']);$(data).find('.sht').html(data_array[n]['sht']);$(data).find('.ocen').html(data_array[n]['ocen']);}var sum = 0;$(".ocen").each( function () {sum += parseInt( $(this).text(), 10 );});$('.summ').html(sum);}

    извеняюсь да я не прав. случайно добавил скрипт не туда и по ошибке сохранив старый вариант, но Вы меня разоблачили. спасибо

  9. вы точно использовали этот скрипт https://jsfiddle.net/gh7bhd4d/22/

    просто он при всем желании не смог бы посчитать все, а вот если вы использовали https://jsfiddle.net/gh7bhd4d/21/,то он собирает все цены из всех .ocen.

    Опять же они у вас должны быть пустыми, но они все заполняются у вас во всех формах при клике по радио в одной из них.

    Чтобы этого не было форма должна быть одна или связать наборы радио со своей формой, дав каждой форме уникальный id по которому их и вычислять.

    использовал я Ваш крутейший вариант https://jsfiddle.net/gh7bhd4d/22/ 

    Но как их связать, чтобы он поля не суммировал. он какую то страшную сумму выдает типа что то ещё суммирует а нужно чтобы для каждой формы он свою сумму считал. Может и правда как то к idшнику привязать, как тогда логически алгоритм продумать правильный?

  10. Можно вот так

    https://jsfiddle.net/gh7bhd4d/22/

    Есть один косяк. Что он почему-то сумму считает по всем формам а не по данной  форме. Как быть? Пример  http://www.zamena-masla-oilcity.ru/testovyij-shablon

    и как зачекать чтобы по умолчанию отображался первый radio . пробовал так checked="checked" не работает.

  11. ну раз у вас все формы сразу на странице - что очень не очень :)

    можно прямо в calc передавать нужные данные

    https://jsfiddle.net/gh7bhd4d/1/

    А вообще я бы данную всплывающую форму сделал одну и передавал бы в нее массивы данных на основе которых она бы выводила нужные данные в нужном виде.

    Чтобы сложить один столбик нужно все элементы столбца перебрать да?

  12. они все на одной странице будут?

    или может стоит сделать для каждой марки свою форму?

    ни чего не мешает добавить параметр который будет отличать марки и добавить все это в массив

    да , на странице будет много форм . пока сделал верстку http://www.zamena-masla-oilcity.ru/testovyij-shablonи формы.    данные будут разные для каждой формы.   и по умолчанию будет отображатся первые значения таблицы.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy