При клике на кнопку переход к якорю и открытие блока
Здравствуйте!
Прошу помощи. На сайте в шапке есть форма фильтра с кнопкой <button type="submit" class="goresult" >Подобрать кондиционер</button> Результаты сортировки фильтра выводятся в блоке ниже section class="selection, до применения фильтра там выводятся все записи без сортировки Задача такая. Изначально блок с записями скрывать, при клике по кнопке submit надо блок отображать и поднимать его вверх (прокручивать экран). Как пробовал. Поставил якорь перед блоком <a name="result"></a> Во-первых якорь срабатывает только если кнопку button обернуть ссылкой на якорь и плюс к тому же поставить такую ссылку рядом, ее приходится скрывать. <a href="#result"><button type="submit" class="goresult" >Подобрать кондиционер</button></a> <a style="opacity:0;" href="#result">дублирующая</a> Во-вторых когда поставил скрипт который отображает блок с записями при клике на кнопку, исчез переход к якорю. <script> function resu() { $('.selection').hide(); $('.goresult').click(function(event) { event.preventDefault(); // Для того чтобы при нажатии на ссылку не кидало вверх $('.selection').slideToggle(); }); resu(); </script> Как заставить все это работать вместе и одновременно? |
Galyanov,
$('.selection').slideToggle()[0].scrollIntoView(); |
Спасибо!
Сделал вот так, только после прокрутки к блоку через несколько секунд блок опять исчезает и кидает наверх <script> $('.selection').hide(); $('.goresult').click(function(event) { $('.selection').slideToggle()[0].scrollIntoView(); }); </script> P.S. А если повесить это событие не на клик кнопки? У меня на странице есть код php который запускает функцию фильтрации если что то было передано из формы, может туда добавить как-то код? <?php if ($_GET && !empty($_GET)) { // если было передано что-то из формы go_filter(); // запускаем функцию фильтрации } ?> |
Galyanov,
кидает на верх значит либо форма перегружает страницу либо ссылка. непонятно в чём проблема -- открыли блок -- взяли позицию блока, проскролили до блока если надо отменили событие по умолчанию. |
Да, форма перегружает страницу, чего не было до установки скрипта.
Если скрипт убрать, то страница не перегружается. |
Отменить событие всмысле убрать скрытие?
Вот этим preventDefault() ? <script> $('.selection').hide(); $('.goresult').click(function(event) { $('.selection').slideToggle()[0].scrollIntoView().preventDefault(); }); </script> все равно кидает наверх и блок скрывается |
Цитата:
|
Galyanov,
и зачем кнопку в ссылку оборачивать? -- и функция сортировки должна скролл делать в конце |
Да, вот так заработало)
Однако при повторном нажатии на сабмит, блок скрывается... <script> $('.selection').hide(); $('.goresult').click(function(event) { event.preventDefault(); $('.selection').slideToggle()[0].scrollIntoView(); }); </script> Т.е. по очереди, нажал - открылось, нажал закрылось. А если повторно делать фильтрацию, как сделать чтобы уже открытое не закрывалось? P.S. Обертыванеи я естественно уже убрал, раз функция есть) |
Блин, я рано радуюсь...
Открывает и скролит это да, но выборка перестала работать, показывает все записи без фильтрации... |
Часовой пояс GMT +3, время: 21:57. |