41

如何使用link_to帮助器创建没有href属性的链接?我想专门为 javascript 操作创建一个链接,我不希望它重新加载页面或任何东西。

当我省略 url 参数时,单击链接会重新加载页面。同上提供nil代替 url。

4

8 回答 8

48

您还可以使用一个

content_tag("a","link text")

这给了你

<a>link text</a>

或者,来自@cesartalves 的评论,带有一个块:

content_tag("a") do
  image_tag("src") 
end

参见:rails api

于 2012-08-23T06:41:14.717 回答
39

我使用这种方法:

= link_to('Click me', 'javascript:;', :id => :foo)

它基本上是一个Javascriptno-op

于 2012-08-22T21:49:34.457 回答
13

将href设置为:

javascript:void(0)

这将使您有一个链接,单击它不会执行任何操作,不会重新加载页面,也不会将页面移动到顶部。

于 2012-08-22T21:46:12.670 回答
2

另一种选择是

= link_to("My hyperlink", "#")

这将为您提供一个链接,单击该链接时不会像传入 nil 一样重新加载页面。同时,它会将鼠标设置为鼠标悬停时的指针,而 content_tag 方法无法做到这一点。

于 2013-09-10T18:45:10.320 回答
2

我认为你最好在没有href的情况下使用按钮。

<button class='button'>Hello</button>
于 2017-07-26T06:04:37.420 回答
2
<%= link_to '+ Add Make', 'javascript:void(0)', id: 'add-make', onclick: 'addMake()' %>

然后是你的 jQuery:

function addMake() {
  $.ajax({
    url: '/dealers',
    type: 'GET',
    dataType: 'script',
    success: function (data) {
      console.log('it was successful')
      $('.add-make').hide();
    },
    error: function (data) {
      console.log('it was error')
    }
  });
}
于 2018-02-11T18:20:55.480 回答
1

rails 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

于 2016-11-24T01:09:42.267 回答
0

href在这种情况下,我更喜欢使用没有属性的纯 HTML :

<a data-toggle="modal" data-target="#myModal">Open dialog</a>

恕我直言,它比content_tag("a","link text").

  • 缺点href=#是浏览器默认点击时会滚动到顶部
  • javascript:;看起来很丑
于 2017-01-19T16:31:58.827 回答