Autor | Zpráva | ||
---|---|---|---|
pajadvorak Profil |
#1 · Zasláno: 24. 5. 2021, 10:35:31
Nemohu přijít na to, jak mám správně nastavit spuštění funkce.....
Zde je kód ze scriptu, kterým volám ajax <input type="button" value="do košíku" class="tlacitko_koupit_detail" id="do_kosiku_pc"> <script nonce="<?=$nonce?>"> document.addEventListener('DOMContentLoaded', function () { $("#do_kosiku_pc").click(function(){ cartAction('add','<?php echo $zbozi['id']; ?>','1','<?php echo $nonce; ?>','<?php echo $zbozi['post_500'];?>','<?php echo $zbozi['sleva_doprava'];?>','<?php echo "$_SERVER[REQUEST_URI]";?>'); }); }); </script> .......... <script nonce="<?=$nonce?>"> function cartAction(action,product_code,pocet,nonce,post_500,sleva_doprava,odkud_prisel) { // požadavek, který nám vrátí vnitřní HTML do ModalWindow var queryString = ""; if(action != "") { switch(action) { case "add": queryString = 'action='+action+'&id='+ product_code+'&pocet='+pocet+'&nonce='+nonce+'&post_500='+post_500+'&sleva_doprava='+sleva_doprava+'&odkud_prisel='+odkud_prisel; break; case "remove": queryString = 'action='+action+'&code='+ product_code; break; case "empty": queryString = 'action='+action; break; } } jQuery.ajax({ url: "ajax_action.php", data:queryString, type: "POST", success:function(data){ $("#modaltext").html(data); if(action != "") { switch(action) { case "add": modal.style.display = "block"; break; } } }, error:function (){} }); } </script> A problém mám v ajax_action.php, kdy mi nefunguje podmínka document.addEventListener('DOMContentLoaded', function spust_zbozi_kosik_okno(e) {...........});
A to je kámen úrazu, kdy člověk může kliknout na tlačítko přidat do košíku dříve než je to komplet připravené a funkce spust_zbozi_kosik_okno se zboří, protože ještě není vše načtené. Normálně to funguje (spust_zbozi_kosik_okno), když mám tuto funkci na první stránce bez ajaxu. Jak je to pod ajaxem nefunguje mi to. Děkuji za každou radu. <script nonce="<?=$nonce?>"> //document.addEventListener('DOMContentLoaded', function spust_zbozi_kosik_okno(e) { function spust_zbozi_kosik_okno(e) { $('.zbozi_kosik_okno').not('.slick-initialized').slick({ dots: false, // dot indikátory (posunovací puntíky) infinite: true, // nekonečná smyčka true / false speed: 900, // rychlost animace //autoplay: 'Autoplay', // default = false; hodnota 'Autoplay' = true //autoplaySpeed: 4000, // čas automatického posunutí (ms) slidesToShow: 4, // počet k zobrazení + níže responzivita slidesToScroll: 4, // počet k zobrazení + níže responzivita //centerMode: true, responsive: [ { breakpoint: 1201, // při nižším rozlišení ukážeme pouzze 1 kartu na stránce settings: { slidesToShow: 3, slidesToScroll: 3, infinite: true, dots: false } }, { breakpoint: 768, // při nižším rozlišení ukážeme pouzze 1 kartu na stránce settings: { slidesToShow: 2, slidesToScroll: 2, infinite: true, dots: false } }, { breakpoint: 699, // při nižším rozlišení ukážeme pouzze 1 kartu na stránce settings: { slidesToShow: 1, slidesToScroll: 1, infinite: true, dots: false } } // You can unslick at a given breakpoint now by adding: // settings: "unslick" // instead of a settings object ] }); }; $(window).scroll(function(){ // schováme tlačítka previous / next //$(".slick-arrow").css("visibility","hidden"); }); $(document).ready(spust_zbozi_kosik_okno); //document.addEventListener('DOMContentLoaded', function (spust_zbozi_kosik_okno) { //}); </script> |
||
Kcko Profil |
pajadvorak:
Když pominu, že ten kód je fakt hnůj, tak proč nepoužiješ document.ready a mícháš to s nativním JS? queryString = 'action='+action+'&id='+ product_code+'&pocet='+pocet+'&nonce='+nonce+'&post_500='+post_500+'&sleva_doprava='+sleva_doprava+'&odkud_prisel='+odkud_prisel; Někde jsem psal, že se to dá psát jako var data = { key: value, key2: value2 } A skutečně potřebuješ takhle míchat PHP a JS? Je to celé zralé na refaktoring. |
||
Časová prodleva: 3 roky
|
0