41

ヘルパーを使用して属性link_toなしでリンクを作成するにはどうすればよいですか?hrefjavascriptアクション専用のリンクを作成したいのですが、ページなどをリロードしたくありません。

urlパラメータを省略すると、リンクをクリックするとページがリロードされます。nilURLの代わりに提供するための同上。

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

Rails5の例は次のとおりです。

<%= 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 に答える