如何使用link_to
帮助程序创建没有href
属性的链接?我想专门为javascript操作建立一个链接,我不希望它重新加载页面或任何东西。
当我省略url参数时,单击该链接会重新加载页面。同样提供nil
代替网址。
答案 0 :(得分:40)
答案 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>