X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Как ПРАВИЛЬНО сделать якорь ссылки?
ShowPrint
ShowPrint
Topic Starter сообщение 2.7.2015, 20:26; Ответить: ShowPrint
Сообщение #1


Подскажите, плз, есть ли способ правильно (и желательно валидно) разрулить следующую ситуацию:

На странице есть две ссылки, при нажатии на которые нет никаких переходов (ни внешних, ни внутренних), а просто производится запуск js-функции (по событию onClick) которая условно меняет часть содержимого этой же страницы. Ссылки посредством css приведены к виду кнопок...

Все вроде работает хорошо и правильно, но "ломает" обязательное наличие атрибута href:
- если указывать пустой якорь (#), то страница скролится на самый верх и ее потом опять надо прокручивать в нужное место;
- если создать якорь в непосредственной близости к ссылкам и указывать его, все равно контент сдергивается распологая строку с якорем в верхней строчке браузера, что тоже не айс...

В идеале хочется чтоб по клику на ссылку не происходило никаких перемещений содержимого страницы, просто производился запуск js-функции
Кто-нибудь сталкивался с решением подобной задачи? Нагуглил вот такое решение: <a href="javascript:void(0)"> но не уверен что он правильное...

Или в подобных случаях правильнее использовать <button> и запускать сценарий по нажатию на кнопушку?
(Но вроде как <button> предназначен для использования внутри тега <form>, а данные никуда мне отправлять не надо, да и будет ли это валидно...)

В общем прошу задать мне правильное направление движения - сам найду/почитаю/реализую, подскажите чего искать правильнее...

Спа!
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ixman
ixman
сообщение 2.7.2015, 20:49; Ответить: ixman
Сообщение #2


Ну я в JS не силён, хотя принцип должен быть тот же, что и при использовании jquery, ведь это библиотека js. В общем там в функции примерно так делается

$(document).ready(function() {
$("body").on('click', '.ajax', function () {
бла бла бла
...
return false;
});

Вот это return false; предотвращает последствия клика по ссылке или кнопке. Но есть ещё один вариант, о котором я знаю. Выглядит так

$(document).ready(function(){
$("#click").click(function(e){
e.preventDefault();
бла бла бла...
});
});

Тут уже сбрасывает действие эта e.preventDefault(); комбинация.

Не знаю поможет ли, но чем чёрт не шутит  :)


Сообщение отредактировал Ixman - 2.7.2015, 22:11
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ShowPrint
ShowPrint
Topic Starter сообщение 2.7.2015, 20:59; Ответить: ShowPrint
Сообщение #3


Ixman, спасибо за постоянную готовность прийти на помощь!

Вопрос на самом деле не из разряда js, а больше по html - сам js работает как надо... (пока, по крайней мере  :unsure: )

Суть вопроса состоит в том, как правильно сделать якорь у гиперссылки, чтоб на нажатию на ссылку не производилось скролинга содержимого страницы. Или вообще оформить этот кусок кода с помощью какого-нибудь другого тега, например button...  :wacko:
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ixman
ixman
сообщение 2.7.2015, 21:06; Ответить: ixman
Сообщение #4


ShowPrint, не могу понять, а что должно происходить по нажатию на ссылку?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ShowPrint
ShowPrint
Topic Starter сообщение 2.7.2015, 21:24; Ответить: ShowPrint
Сообщение #5


Ixman, по ссылке запускается js-функция, которая грубо:
а) производит замену картинки на странице;
б) производит арифметические действия и меняет в тексте одну цифру на другую.

а) и б) - реализованы и работают как надо, но при нажатии на ссылку из-за href='#якорь' происходит скроллинг страницы, который в данном случае не нужен...

(здесь была ссылка на страницу) - речь идет об опции выбора цвета футболок: не нравится что в зависимости от размещения содержимого окна при нажатии на кнопку-ссылку страница скроллится по якорю...

Вопрос либо как правильно прописать якорь, либо на что поменять гиперссылку как класс для получения необходимого действия.
Напрашивается реализация посредством <button>, но я не полностью уверен, что это будет правильным подходом и пытаюсь спросить совета...
/* видимо пытаюсь криво, бывает =) */


Сообщение отредактировал ShowPrint - 3.7.2015, 0:33
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ixman
ixman
сообщение 2.7.2015, 22:09; Ответить: ixman
Сообщение #6


ShowPrint, пробуй вот так

5XIriiZK.png 

По крайней мере внедряя код в браузере в html код страницы скроллинга не происходит
Ну по аналогии и для другой ссылки
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ShowPrint
ShowPrint
Topic Starter сообщение 3.7.2015, 0:38; Ответить: ShowPrint
Сообщение #7


(Ixman @ 3.7.2015, 00:09) *
пробуй вот так
Ixman, всего-то исправлений...  :huh:
Супер!!! В локалке тоже все работает, ща закачаю на сайт... СПАСИБО!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
TimurR
TimurR
сообщение 3.7.2015, 0:54; Ответить: TimurR
Сообщение #8


Можно поинтересоваться, почему изначально не был выбран вариант с реализацией через бутон? 
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ShowPrint
ShowPrint
Topic Starter сообщение 3.7.2015, 1:16; Ответить: ShowPrint
Сообщение #9


TimurR, причин несколько, в порядке важности:
а) я не профессионал, скорее ламмер;  :wacko:
б) написал в топике: 
вроде как <button> предназначен для использования внутри тега <form>

в) на самом деле имеет место несколько более сложная конструкция: гиперссылки были созданы для удобства и дублировали переключение инпут-радио, а скрипт-обработчик анализировал положение переключателя
г) исторически сложилось...

Пункты б), в) и г) являются следствием п. а)  B) 


Сообщение отредактировал ShowPrint - 3.7.2015, 1:16
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
TimurR
TimurR
сообщение 3.7.2015, 1:18; Ответить: TimurR
Сообщение #10


Понятно :)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Как вы отдыхаете от работы за компом
151 adw-kupon.ru 19809 Сегодня, 13:52
автор: Vmir
Открытая тема (нет новых ответов) Как вы бросили работу и перешли на заработок с сайтов?
20 uahomka 3440 Сегодня, 11:54
автор: Skyworker
Открытая тема (нет новых ответов) Как в пушсетках покупают по 100-200 тысяч кликов за день?
1 Boymaster 507 Сегодня, 11:45
автор: Skyworker
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыВечные ссылки с трастовых сайтов
54 1informer 22812 20.4.2024, 18:39
автор: 1informer
Горячая тема (нет новых ответов) Как вывести деньги в Украине с заблокированного Юмани ?
30 freeax 4998 20.4.2024, 16:49
автор: Liudmila


 



RSS Текстовая версия Сейчас: 23.4.2024, 18:45
Дизайн