При клике на кнопку переход к якорю и открытие блока
Здравствуйте!
Прошу помощи. На сайте в шапке есть форма фильтра с кнопкой <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, время: 19:24. |