Autor | Zpráva | ||
---|---|---|---|
PetrBK Profil |
#1 · Zasláno: 12. 6. 2020, 20:15:54
Ahoj,
mohl by mi někdo, prosím, poradit s následujícím problémem? Na stránce mám dvě tlačítka pro vysunování elementů: 1. je pro vyhledávací formulář a 2. pro řazení výsledků. 1. tlačítko funguje perfektně, ale druhé nelze na druhé kliknutí zavřít. Zavřít jej mohu pouze kliknutím na 1. tlačítko (což je žádoucí efekt). Ale obráceně to už také nefunguje (zavřít 1. element kliknutím na 2. tlačítko). HTML: <a href="javascript:void(0)" onclick="open_filter()" id="btn_filter">Custom filter</a> <a href="javascript:void(0)" onclick="open_sort_by()" id="btn_sort_by">Sort by</a> JS: <script> var prevScrollpos = window.pageYOffset; window.onscroll = function() { var currentScrollPos = window.pageYOffset; if (prevScrollpos > currentScrollPos) { $('nav').removeClass('hide'); $('#filter_def').removeClass('hide'); $('#filter_nav').removeClass('hide'); } else { $('nav').addClass('hide'); $('#filter_def').addClass('hide'); $('#filter_nav').addClass('hide'); } prevScrollpos = currentScrollPos; // Main filter $('#filter').removeClass('active'); $('#btn_filter').removeClass('active'); $('#btn_filter').html('Custom filter'); // Sort by $('#filter_sort_by').removeClass('active'); $('#btn_sort_by').removeClass('active'); } // Open/close custom filter function open_filter() { if ($('#btn_filter').hasClass('active') === true){ // Button $('#btn_filter').removeClass('active'); // Form $('#btn_filter').html('Custom filter'); $('#filter').removeClass('active'); } else { // Button $('#btn_filter').addClass('active'); $('#btn_filter').html('Close filter'); // Form $('#filter').addClass('active'); // Close sort by filet $('#filter_sort_by').removeClass('active'); $('#btn_sort_by').removeClass('active'); } } // Open/close sort by filter function open_sort_by() { if ($('#btn_filter').hasClass('active') === true){ // Button $('#btn_sort_by').removeClass('active'); // Form $('#filter_sort_by').removeClass('active'); } else { // Button $('#btn_sort_by').addClass('active'); // Form $('#filter_sort_by').addClass('active'); // Close main filter $('#filter').removeClass('active'); $('#btn_filter').removeClass('active'); } } </script> Děkuji P. |
||
Časová prodleva: 9 dní
|
|||
Kajman Profil |
#2 · Zasláno: 21. 6. 2020, 20:19:57
Na řádku 48 kontroluje aktivnost prvního tlačítka místo druhého.
|
||
Časová prodleva: 3 dny
|
|||
PetrBK Profil |
#3 · Zasláno: 24. 6. 2020, 19:51:32
Kajman:
Obdivuji Vás, že v tom "guláši" tu záměnu najdete a vůbec máte čas to projít. Děkuji. Nicméně, druhou část jsem celou zjednodušil do jedné funkce a již to funguje jak má. function custom_filter(new_btn_this, new_btn_2nd){ // Buttons var btn_this = $("#" + new_btn_this); var btn_2nd = $("#" + new_btn_2nd); //Forms var form_this = $("." + new_btn_this); var form_2nd = $("." + new_btn_2nd); if ($(btn_this).hasClass('active') === true){ $(btn_this).removeClass('active'); $(form_this).removeClass('active'); } else { $(btn_this).addClass('active'); $(form_this).addClass('active'); $(btn_2nd).removeClass('active'); $(form_2nd).removeClass('active'); } } |
||
Časová prodleva: 4 roky
|
0