Ответ 1
Я использую этот подход:
= link_to('Click me', 'javascript:;', :id => :foo)
В основном это Javascript no-op
Как я могу использовать помощник link_to
для создания ссылки без атрибута href
? Я хочу сделать ссылку исключительно для javascript-действия, я не хочу, чтобы она перезагружала страницу или что-то еще.
Когда я опускаю параметр url, щелчок по ссылке перезагружает страницу. То же самое для обеспечения nil
вместо URL.
Я использую этот подход:
= link_to('Click me', 'javascript:;', :id => :foo)
В основном это Javascript no-op
Вы также можете использовать
content_tag("a","link text")
который дает вам
<a>link text</a>
Смотрите: rails api
Задайте для href значение:
javascript:void(0)
Это позволит вам иметь ссылку, что щелчок на ней ничего не делает, не перезагружает страницу и не перемещает страницу вверх.
Альтернативой является
= link_to("My hyperlink", "#")
Это даст вам ссылку, которая при нажатии на нее не перезагружает страницу, как передача в ноль. В то же время он установит указатель мыши на курсор мыши, который вы не получите с помощью подхода content_tag.
Пример для рельсов 5:
<%= content_tag("a", image_tag("/logo.png"), class: "navbar-brand") %>
Это будет выглядеть как:
<a class="navbar-brand"><img src="/logo.png" alt="Logo"></a>
Это похоже на ответ niels, но с вложенным image_tag
и классом.
Источник: Rails API
Я предпочитаю использовать простой HTML без атрибута href
вообще в таких случаях:
<a data-toggle="modal" data-target="#myModal">Open dialog</a>
IMHO более читабельна, чем content_tag("a","link text")
.
href=#
является то, что браузер переместится вверх
при нажатии по умолчаниюjavascript:;
выглядит уродливоЯ думаю, вам лучше использовать кнопку в ситуациях, где нет href.
<button class='button'>Hello</button>