Голосование

Как вы "глушите" ссылки, обрабатываемые javascript'ом

Пишу по привычке href="javascript: void(0)"
13 (31.7%)
Пишу по привычке href="#".
11 (26.8%)
Пишу href="javascript: void(0)" или href="#" потому-что так пишут другие.
6 (14.6%)
Не пишу атрибут href вообще
5 (12.2%)
Не использую <a>. Пишу <span> или <div>
6 (14.6%)

Проголосовало пользователей: 41

0 Пользователей и 1 Гость просматривают эту тему.
  • 45 Ответов
  • 33019 Просмотров
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Просьба приводить доводы по поводу использования предложенных вариантов.
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

mohax

  • Давно я тут
  • 901
  • 66 / 3
Код
javascript: void(0) 
По привычке. Даже не задумывался никогда.
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
onclick обычно на span вешаю или img - по ситуации
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Вообще без href толком тегом <a> не считается. Его потом геморно настраивать в CSS.
Создание сайтов, шаблонов, помощь в решении проблем.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Вообще без href толком тегом <a> не считается. Его потом геморно настраивать в CSS.
В чем гемор? Очень часто пишу <a> без href. Никаких проблем не наблюдаю.
Хотя так-то да - нужно <a href="*"> использовать только для ссылок.
Для элементов, событие onclick на которых обрабатывается скриптом - использовать <button> , <span> или <div>

Писать <a href="#">  - глупо. Очень глупо. Начнем с того, что дефолтное действие при клике по такой ссылке -  переход в начало страницы. На этом и закончим - нам нужно это? Нет. Так зачем так писать?
Писать <a href="javascript:;"> тоже глупо. Ну объясните, какой в этом смысл?

Тем не менее, отмечу один момент. В браузере элементы <a> с атрибутом href без лишних действий учавствуют в обходе по табу. Но ведь есть tabindex.
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Цитировать
В чем гемор? Очень часто пишу <a> без href. Никаких проблем не наблюдаю.
a:link, a:visited цепляются?
Ну а в итоге как правильно-то? Если href нужен всё-таки. <a href="*">?
Создание сайтов, шаблонов, помощь в решении проблем.
*

Dmitry_

  • Осваиваюсь на форуме
  • 47
  • 3 / 0
глушить ссылку href="#" не корректоно.

а почему автор забыл наиболее используемый вариант return false  ?
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
глушить ссылку href="#" не корректоно.
Да зачем ее вобще глушить? Не создавать - да и делов. Че, кроме тега <a> нет больше никаких?
Нужна ссылка - пишем <a href="link.html"> , нужна кнопка пишем <button id="bla-bla"> или <span role="button id="bla-bla"> или <span class="button" id="bla-bla">
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

Dmitry_

  • Осваиваюсь на форуме
  • 47
  • 3 / 0
Цитировать
Да зачем ее вобще глушить?

очень часто без сылки просто не обойтись,

правильный вариант заглушки выглядит так:

<a href="" onclick="return false;">LINK</a>
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
очень часто без сылки просто не обойтись,

правильный вариант заглушки выглядит так:

<a href="" onclick="return false;">LINK</a>
А какой смысл этой записи? Если мы по ссылке все-равно не сможем перейти?
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

Dmitry_

  • Осваиваюсь на форуме
  • 47
  • 3 / 0
Цитировать
Если мы по ссылке все-равно не сможем перейти?

то есть если записать <a href="">LINK</a>

то мы по ссылке не сможем перейти?

lol :)
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Dmitry_ , че за издевка?
1) Если мы оставим атрибут href пустой, то в качестве результирующего href будет текущий урл. И без onclick="return false" по клику будет происходить переход по ссылке, а по факту - перезагрузка страницы.
2) Если мы пишем  onclick="return false", как ты предлагаешь, то мы не сможем перейти по ссылке.
Что тут не ясно?

Навешивать onclick нужно только, когда мы переопределяем действие , которое должно произойти по клику. Тоесть , например вместо перехода по ссылке должен произойти ajax-запрос и подгрузиться контент. С оключенным js для браузера, а так же для поисковика ссылка останется ссылкой. А другого применения onclick на ссылке я не вижу. А оно есть?
« Последнее редактирование: 30.05.2012, 08:45:10 от danik.html »
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Пишу <a href="#"></a> и вешаю глобально в scripts.js:
Код: javascript
$("a[href=#]").click(function(){
return false;
});
Смешаный, получаецо, метод? ^-^ Чем плоха конструкция?
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
А чем хороша? При отключенном js произойдет переход на несуществующий якорь - #
Зачем этот якорь вообще нужен? Чем не по нраву <span></span> ?
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

Dmitry_

  • Осваиваюсь на форуме
  • 47
  • 3 / 0
Автор топика, как названа тема?

Цитировать
Признавайтесь, кто из вас еще пишет javascript: void(0) или href="#"

причем здесь отключенный js? при отключенном js нормальные сайты, которые используют js, в том числе для заглушек :) выдают сообщения о том что js в вашем браузере отключен

вариант

Код
$("a[href=#]").click(function(){
return false;
});

отличается от <a href="" onclick="return false;">LINK</a>

тем, что он использует для заглушек, причем для все ссылок сразу, целую библиотеку jQuery

Цитировать
Чем не по нраву <span></span> ?

тег span довольно удобный, как удобен и div, но вопрос ведь был о теге <a> ?
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
А чем хороша? При отключенном js произойдет переход на несуществующий якорь - #
Зачем этот якорь вообще нужен? Чем не по нраву <span></span> ?
Тем, что на span надо ещё повесить .someclass:hover {cursor:pointer; text-decoration:underline; color:... и т.д.}, чтобы он вёл себя, как ссылка. А про выключенный js - это уже несерьёзно по-моему.
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Автор топика, как названа тема?

причем здесь отключенный js? при отключенном js нормальные сайты, которые используют js, в том числе для заглушек :) выдают сообщения о том что js в вашем браузере отключен

вариант

Код
$("a[href=#]").click(function(){
return false;
});

отличается от <a href="" onclick="return false;">LINK</a>

тем, что он использует для заглушек, причем для все ссылок сразу, целую библиотеку jQuery

тег span довольно удобный, как удобен и div, но вопрос ведь был о теге <a> ?
Целую библиотеку jQuery я использую для целых 99,9% различных задач на сайте, а $("a[href=#]").click(function(){return false;}); я повесил только для того, чтобы к урл-у не прибавлялся некрасивый такой "#".
Цитата: danik.html
Писать <a href="#">  - глупо. Очень глупо. Начнем с того, что дефолтное действие при клике по такой ссылке -  переход в начало страницы.
Никуда ничего переходить не будет. :)
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Dmitry_, к чему эти вопросы? Я думаю все поняли мой посыл - конструкции типа href="#" или onclick="return false" не имеют смысла.
И просил же  - доводы использования.
Вот, Shustry, например пишет
Код: javascript
$("a[href=#]").click(function(){
return false;
});
потому, что ему лень прописывать hover состояние для span. Странно что для a ему не лень это делать, или он довольствуется дефолтным hover-эффектом браузера.
Не знаю как у него, а у меня чаще активные элементы, обрабатываемые js-скриптом визуально отличаются от ссылок. А если и похожи на них, то как минимум имеют не сплошное подчеркивание, а border-bottom: 1px dotted;
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
danik.html, мне не лень прописывать a:hover, потому что конкретно для ссылки конкретно этот псевдокласс логичен и, напротив, лень прописывать span:hover, table:focus, div:visited и т.п. Чем так плоха конструкция href="#" - так и не аргументировали. Слабым, но всё же аргументом в мою пользу - понимание со стороны IE6. ^-^
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Она не плоха, она бессмысленна. Это все-равно что писать <font face="Arial"></font> потому что лень прописать span{font-family: Arial}
А уж пользователи IE6 без ховера, думаю проживут. Я думаю это - наименьшее из зол, с которым они могут встетиться :)
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
Кстати, аргумент по поводу отключённого js - ведь тот же эффект часто будет и при ошибках js
Например при конфликтах библиотек, когда после тебя понавешают всяких крутелок-вертелок.

И если ошибка приведёт к тому, что дальнейшее исполнение скриптов тормознётся, в том числе и для твоего элемента,
реализованного ссылкой, то как раз будут и прыжки в начало страницы и незапланированный переход на главную.

Так что я даже из этих изображений предпочитаю не использовать <a>
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
В браузере элементы <a> с атрибутом href без лишних действий учавствуют в обходе по табу. Но ведь есть tabindex.
Есть, но tabindex определен у ограниченного набора элементов:  A, AREA, BUTTON, INPUT, OBJECT, SELECT, TEXTAREA. И далеко не всегда удобно использовать button или input.

Задавать атрибут href конечно не обязательно и я думаю, что в 90% случаев конструкция href="#" это просто привычка, ничем не обоснованная. Я тоже этой фигней страдаю, но как-то особо совесть по этому поводу не мучает.
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Замечу, что если указано href="#", то событие onclick отрабатывается так же и при нажатии на Enter. А если такого атрибута нет - то ентер уже не работает.
По табиндексу верно подмечено. Хотя в современных браузерах табиндекс поддерживается для любых элементов (кажется это описано в html5)
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Убедил, теперь не использую href="#". Просто дело привычки. Ещё со времён IE6 осталось, тот нативно понимал :hover только для линков. ^-^
*

Alldar

  • Завсегдатай
  • 1504
  • 195 / 1
вопрос зачем вам тогда этот тег? если вы не куда не ссылаетесь
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Имеются в виду элементы инерактива: спойлеры, слайдеры, попандеры, аккордеоны... То, что реально никуда не ведёт. Псевдоссылки в общем.
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
вопрос зачем вам тогда этот тег? если вы не куда не ссылаетесь
Ну, элемент a не обязан куда-то ссылаться. Но смысл в том, что если он никуда не ссылается, то и атрибут href не надо писать, с какими то там еще фэйковыми значениями.
Использовать элемент a (без href) есть повод, даже не один:
- поддержка tabindex в старых IE
- a подразумевает под собой какой-то активный элемент (ну, может быть)
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

Alldar

  • Завсегдатай
  • 1504
  • 195 / 1
The <a> tag defines an anchor. An anchor can be used in two ways:
  • To create a link to another document, by using the href attribute
  • To create a bookmark inside a document, by using the name attrib

Тут 2 варианта или использовать href или name target. Соответственно в слайдере нужно использовать или target (и таргет убрали значит видимо rel?) или другой тег

Вообще идеально наверное вот так
<nav>
<span class="prev">Previous</span>
<span class="next">Next</span>
</nav>

и навигацию обозначили и от <a> пустого избавились
« Последнее редактирование: 13.06.2012, 14:57:08 от Alldar »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

jquery против javascript

Автор gartes

Ответов: 0
Просмотров: 452
Последний ответ 21.11.2021, 12:04:14
от gartes
JavaScript - простое удаление дублей в массиве [РЕШЕНО]

Автор dm-krv

Ответов: 6
Просмотров: 1169
Последний ответ 16.05.2019, 09:25:18
от dm-krv
Как дописать в поле hidden формы, текущий URL через JavaScript?

Автор dremora

Ответов: 9
Просмотров: 1976
Последний ответ 09.06.2013, 19:39:25
от dremora
И все-таки как правильно отложить синтаксический анализ JavaScript?

Автор staticlight

Ответов: 10
Просмотров: 23692
Последний ответ 04.06.2013, 17:35:45
от Satanek