Форум русской поддержки Joomla!® CMS
04.12.2016, 12:16:56 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Голосование
Вопрос: Как вы "глушите" ссылки, обрабатываемые 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

Страниц: [1] 2  Все   Вниз
  Добавить закладку  |  Печать  
Автор

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

 (Прочитано 23596 раз)
0 Пользователей и 1 Гость смотрят эту тему.
danik.html
Практически профи
*******

Репутация: +351/-4
Offline Offline

Пол: Мужской
Сообщений: 2723



« : 18.05.2012, 12:14:52 »

Просьба приводить доводы по поводу использования предложенных вариантов.
Записан
mohax
Живу я здесь
******

Репутация: +66/-3
Offline Offline

Пол: Мужской
Сообщений: 909



« Ответ #1 : 18.05.2012, 12:25:55 »

Код:
javascript: void(0)
По привычке. Даже не задумывался никогда.
Записан
SDKiller
Dev Team
******

Репутация: +325/-5
Offline Offline

Пол: Мужской
Сообщений: 2749


...ergo sum


« Ответ #2 : 18.05.2012, 12:27:15 »

onclick обычно на span вешаю или img - по ситуации
Записан
Efanych
Группа развития
*****

Репутация: +602/-0
Offline Offline

Пол: Мужской
Сообщений: 4319



« Ответ #3 : 18.05.2012, 12:40:26 »

Вообще без href толком тегом <a> не считается. Его потом геморно настраивать в CSS.
Записан
Fedor Vlasenko
Профи
********

Репутация: +696/-5
Offline Offline

Пол: Мужской
Сообщений: 3820


Все начинается с Value


« Ответ #4 : 18.05.2012, 12:47:07 »

Вообще без href толком тегом <a> не считается. Его потом геморно настраивать в CSS.
Это как? А если так.
Записан
danik.html
Практически профи
*******

Репутация: +351/-4
Offline Offline

Пол: Мужской
Сообщений: 2723



« Ответ #5 : 18.05.2012, 13:19:31 »

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

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

Тем не менее, отмечу один момент. В браузере элементы <a> с атрибутом href без лишних действий учавствуют в обходе по табу. Но ведь есть tabindex.
Записан
Efanych
Группа развития
*****

Репутация: +602/-0
Offline Offline

Пол: Мужской
Сообщений: 4319



« Ответ #6 : 18.05.2012, 15:24:11 »

Цитировать
В чем гемор? Очень часто пишу <a> без href. Никаких проблем не наблюдаю.
a:link, a:visited цепляются?
Ну а в итоге как правильно-то? Если href нужен всё-таки. <a href="*">?
Записан
Dmitry_
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 47


« Ответ #7 : 29.05.2012, 16:30:43 »

глушить ссылку href="#" не корректоно.

а почему автор забыл наиболее используемый вариант return false  ?
Записан
danik.html
Практически профи
*******

Репутация: +351/-4
Offline Offline

Пол: Мужской
Сообщений: 2723



« Ответ #8 : 29.05.2012, 16:37:19 »

глушить ссылку href="#" не корректоно.
Да зачем ее вобще глушить? Не создавать - да и делов. Че, кроме тега <a> нет больше никаких?
Нужна ссылка - пишем <a href="link.html"> , нужна кнопка пишем <button id="bla-bla"> или <span role="button id="bla-bla"> или <span class="button" id="bla-bla">
Записан
Dmitry_
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 47


« Ответ #9 : 29.05.2012, 16:43:15 »

Цитировать
Да зачем ее вобще глушить?

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

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

<a href="" onclick="return false;">LINK</a>
Записан
danik.html
Практически профи
*******

Репутация: +351/-4
Offline Offline

Пол: Мужской
Сообщений: 2723



« Ответ #10 : 29.05.2012, 18:18:26 »

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

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

<a href="" onclick="return false;">LINK</a>
А какой смысл этой записи? Если мы по ссылке все-равно не сможем перейти?
Записан
Dmitry_
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 47


« Ответ #11 : 29.05.2012, 19:33:27 »

Цитировать
Если мы по ссылке все-равно не сможем перейти?

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

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

lol Azn
Записан
danik.html
Практически профи
*******

Репутация: +351/-4
Offline Offline

Пол: Мужской
Сообщений: 2723



« Ответ #12 : 30.05.2012, 08:41:56 »

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

Навешивать onclick нужно только, когда мы переопределяем действие , которое должно произойти по клику. Тоесть , например вместо перехода по ссылке должен произойти ajax-запрос и подгрузиться контент. С оключенным js для браузера, а так же для поисковика ссылка останется ссылкой. А другого применения onclick на ссылке я не вижу. А оно есть?
« Последнее редактирование: 30.05.2012, 08:45:10 от danik.html » Записан
SmokerMan
Профи
********

Репутация: +692/-25
Offline Offline

Пол: Мужской
Сообщений: 5215



« Ответ #13 : 30.05.2012, 10:21:23 »

О Joomla
Don't use the javascript pseudo protocol when it isn't necessary
Записан
Shustry
Группа развития
*****

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #14 : 30.05.2012, 11:59:33 »

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

Репутация: +351/-4
Offline Offline

Пол: Мужской
Сообщений: 2723



« Ответ #15 : 30.05.2012, 17:17:59 »

А чем хороша? При отключенном js произойдет переход на несуществующий якорь - #
Зачем этот якорь вообще нужен? Чем не по нраву <span></span> ?
Записан
Dmitry_
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 47


« Ответ #16 : 30.05.2012, 19:11:33 »

Автор топика, как названа тема?

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

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

вариант

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

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

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

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

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

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #17 : 30.05.2012, 19:16:39 »

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

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #18 : 30.05.2012, 19:22:04 »

Автор топика, как названа тема?

причем здесь отключенный js? при отключенном js нормальные сайты, которые используют js, в том числе для заглушек Azn выдают сообщения о том что 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="#">  - глупо. Очень глупо. Начнем с того, что дефолтное действие при клике по такой ссылке -  переход в начало страницы.
Никуда ничего переходить не будет. Azn
Записан
danik.html
Практически профи
*******

Репутация: +351/-4
Offline Offline

Пол: Мужской
Сообщений: 2723



« Ответ #19 : 30.05.2012, 21:20:55 »

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

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #20 : 30.05.2012, 21:28:31 »

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

Репутация: +351/-4
Offline Offline

Пол: Мужской
Сообщений: 2723



« Ответ #21 : 30.05.2012, 21:37:17 »

Она не плоха, она бессмысленна. Это все-равно что писать <font face="Arial"></font> потому что лень прописать span{font-family: Arial}
А уж пользователи IE6 без ховера, думаю проживут. Я думаю это - наименьшее из зол, с которым они могут встетиться Azn
Записан
SDKiller
Dev Team
******

Репутация: +325/-5
Offline Offline

Пол: Мужской
Сообщений: 2749


...ergo sum


« Ответ #22 : 30.05.2012, 22:08:36 »

Кстати, аргумент по поводу отключённого js - ведь тот же эффект часто будет и при ошибках js
Например при конфликтах библиотек, когда после тебя понавешают всяких крутелок-вертелок.

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

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

Репутация: +1308/-14
Offline Offline

Пол: Мужской
Сообщений: 6850


снова дома...


« Ответ #23 : 13.06.2012, 03:51:48 »

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

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

Репутация: +351/-4
Offline Offline

Пол: Мужской
Сообщений: 2723



« Ответ #24 : 13.06.2012, 07:38:25 »

Замечу, что если указано href="#", то событие onclick отрабатывается так же и при нажатии на Enter. А если такого атрибута нет - то ентер уже не работает.
По табиндексу верно подмечено. Хотя в современных браузерах табиндекс поддерживается для любых элементов (кажется это описано в html5)
Записан
Shustry
Группа развития
*****

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #25 : 13.06.2012, 07:54:00 »

Убедил, теперь не использую href="#". Просто дело привычки. Ещё со времён IE6 осталось, тот нативно понимал :hover только для линков. Smiley
Записан
Alldar
Тестеры
*****

Репутация: +181/-1
Offline Offline

Пол: Мужской
Сообщений: 1475



« Ответ #26 : 13.06.2012, 09:16:55 »

вопрос зачем вам тогда этот тег? если вы не куда не ссылаетесь
Записан
Shustry
Группа развития
*****

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #27 : 13.06.2012, 09:19:28 »

Имеются в виду элементы инерактива: спойлеры, слайдеры, попандеры, аккордеоны... То, что реально никуда не ведёт. Псевдоссылки в общем.
Записан
danik.html
Практически профи
*******

Репутация: +351/-4
Offline Offline

Пол: Мужской
Сообщений: 2723



« Ответ #28 : 13.06.2012, 12:53:43 »

вопрос зачем вам тогда этот тег? если вы не куда не ссылаетесь
Ну, элемент a не обязан куда-то ссылаться. Но смысл в том, что если он никуда не ссылается, то и атрибут href не надо писать, с какими то там еще фэйковыми значениями.
Использовать элемент a (без href) есть повод, даже не один:
- поддержка tabindex в старых IE
- a подразумевает под собой какой-то активный элемент (ну, может быть)
Записан
Alldar
Тестеры
*****

Репутация: +181/-1
Offline Offline

Пол: Мужской
Сообщений: 1475



« Ответ #29 : 13.06.2012, 14:50:21 »

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 » Записан
Страниц: [1] 2  Все   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet