Viditelnost po zatržení checkboxu – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Viditelnost po zatržení checkboxu – PHP – Fórum – Programujte.comViditelnost po zatržení checkboxu – PHP – Fórum – Programujte.com

 

Vlákno bylo úspěšně vloženo.
Pokud sám přijdeš na řešení, nezapomeň ho sem přidat!
Pavel
~ Anonymní uživatel
383 příspěvků
17. 2. 2022   #1
-
0
-

Přátelé, měl bych k vám prosbu. Jsem téměř absolutní laik, co se programování týče a právě proto bych potřeboval poradit. Máme na shopu novou template a zjistili jsme, že při použití filtrů produktů nám to nefunguje přesně jak by mělo. Jde o to, že pokud rozbalíme filtrování (pokročilé filtry), zobrazí se vše, jak má. Je tam filtrování podle značky a jiných parametrů. Problém je v tom, že po kliknutí na nějaký checkbox se filtry opět sbalí a musí se znovu otevřít. Vyjímku tvoří pouze filtrování podle značky (kde zůstane rám filtrů pořád otevřený a lze dále filtrovat. Pokud ale otevřete filtry, a jako první nekliknete na nějaký filtr podle značky, ale jiný filtr, tak to zmizí a musí se to otevřít. Trochu jsem se v tom šťoural:-) a zjistil jsem podle kódu, že tu viditelnost u značky způsobuje toto. 

  function showHideFiltr(){
      $("#manufacturer-filter input[type='checkbox']").change(function() {
          //po kliknuti na znacku se ulozi pocet zakliknutych
          lbKdFilterManufacturer = $("#manufacturer-filter input[type='checkbox']:checked").length;         
      });

tohle když zakomentuju, mizí i filtr značek. Jak ale donutit celé filtry, aby zůstaly aktivně otevřené stále? Moc děkuji za rady a omlouvám se za neznalost. Jinak tady je celý kód, který to ovládá.

  var lbKdFilterManufacturer = 0;

  function showHideFiltr(){
      $("#manufacturer-filter input[type='checkbox']").change(function() {
          //po kliknuti na znacku se ulozi pocet zakliknutych
          lbKdFilterManufacturer = $("#manufacturer-filter input[type='checkbox']:checked").length;         
      });
  
      $("#filterActivator").click(function(){
          if($('#category-filter-hover').is(':visible')) {
              hideFilter();       
          } else {
              //zobrazit s animaci
              showFilter(150);    
          }
      });
  }
  
  function showFilter(animationLength){
      $('#category-filter-hover').show(animationLength);
      $("#filterActivator").html(function(index, text) {
          return text.replace("Pokročilé filtry", "Zavřít filtr");
      });
  }
  
  function hideFilter(){
      $('#category-filter-hover').hide(350);
      $("#filterActivator").html(function(index, text) {
          return text.replace("Zavřít filtr", "Pokročilé filtry");
      });  
  }

  $(document).ready(function(){
      $(".type-category .sidebar .box-filters, .type-manufacturer-detail .sidebar .box-filters").insertBefore($("#category-header"));
      $(".type-category #content #filters, .type-manufacturer-detail #content #filters").insertBefore($("#category-header"));
      $(".type-category #content #filters").append('<span class="btn" id="filterActivator">Pokročilé filtry</span>');
      $('.param-filter-top label[for="stock"]').html(function(index, text) {
        return text.replace("Na skladě", "Skladem");
      });
      showHideFiltr();
      
      insertControlsAdvancedOrder();

      var windowWidth = $(window).width();
      if(windowWidth < 768) {
          $("#content > .filters-wrapper a.btn[data-unveil='filters']").insertBefore($("#category-header"));
      }
      
      document.addEventListener("ShoptetDOMPageContentLoaded", function() {
          lbKdAjaxComplete();      
      });
    
      document.addEventListener("ShoptetDOMPageMoreProductsLoaded", function() {
          lbKdAjaxComplete();     
      });
  });
  
  function insertControlsAdvancedOrder(){
      document.addEventListener("ShoptetDOMAdvancedOrderLoaded", function () {
          var continueButton = $('<button type="button" class="btn btn-primary lbKdELiquidContinue">Pokračovat v nákupu</button>');    
          $("#colorbox .advanced-order .extra.step").prepend(continueButton); 
          
          /*
          $.colorbox.resize({
            width : $('.content-wrapper').width(),
          }); 
          */                   
          
          $(".lbKdELiquidContinue").click(function() {   
              $.colorbox.close();                                                                                
          });     
       });
    }
  
  function lbKdAjaxComplete(){
      $(".type-category .sidebar .box-filters, .type-manufacturer-detail .sidebar .box-filters").insertBefore($("#category-header"));
      $(".type-category #content #filters, .type-manufacturer-detail #content #filters").insertBefore($("#category-header"));
      $('.param-filter-top label[for="stock"]').html(function(index, text) {
        return text.replace("Na skladě", "Skladem");
      });
      if(!$("#filterActivator").length){
          $(".type-category #content #filters").append('<span class="btn" id="filterActivator">Pokročilé filtry</span>');
          //znovu zaregistrovat listener
          showHideFiltr();
          //kontrola poctu oznacenych znacek 
          if(lbKdFilterManufacturer > 0){
              //zobrazit bez animace 
              showFilter(0);  
          }           
      }

      var windowWidth = $(window).width();
      if(windowWidth < 768) {
          $("#content > .filters-wrapper a.btn[data-unveil='filters']").insertBefore($("#filters"));
      }
  }

Nahlásit jako SPAM
IP: 2a02:768:b53d:516a:b4be:a3af:74cc:d196...–
Kit+15
Guru
17. 2. 2022   #2
-
0
-

#1 Pavel
Zde není ani kousek PHP, vše je JavaScript.

Nahlásit jako SPAM
IP: 213.175.51.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Pavel
~ Anonymní uživatel
383 příspěvků
17. 2. 2022   #3
-
0
-

#2 Kit
Aha, já dal omylem jinam. Omlovám se.

Nahlásit jako SPAM
IP: 2a02:768:b53d:516a:b4be:a3af:74cc:d196...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 43 hostů

Podobná vlákna

Viditelnost proměnné — založil Nefaritus

Uzamknutí checkBoxu — založil Tase

Kontrola Checkboxu... — založil buenek

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý