Rails:使用link_to创建一个没有href的链接

时间:2012-08-22 20:44:47

标签: ruby-on-rails

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

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

8 个答案:

答案 0 :(得分:40)

您也可以使用

content_tag("a","link text")

给你

<a>link text</a>

请参阅:rails api

答案 1 :(得分:33)

我使用这种方法:

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

它基本上是一个Javascript no-op

答案 2 :(得分:12)

将href设置为:

javascript:void(0)

这将允许您有一个链接,点击它什么也不做,不重新加载页面,并且不会将页面移动到顶部。

答案 3 :(得分:1)

另一种选择是

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

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

答案 4 :(得分: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&#39;回答但是有一个嵌套的image_tag和一个类。

来源:Rails API

答案 5 :(得分:1)

<%= 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')
    }
  });
}

答案 6 :(得分:0)

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

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

恕我直言,它比content_tag("a","link text")更具可读性。

  • href=#的缺点是浏览器会滚动到顶部 默认情况下点击时
  • javascript:;看起来很难看

答案 7 :(得分:0)

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

<button class='button'>Hello</button>