3

私は link_to_remote を持っていて、それが戻るのを待っている間、人々が一度だけクリックできるようにしたいと思っています。

誰かがクリックした後に無効にする良い方法はありますか? (リンクのテキストを変更するのもいいですが、念のため無効にしたいです)。

これはRuby on Railsです。

4

2 に答える 2

3

Edgardが提案したように、:beforeブロックのリンクを置き換えることになりました:

<div id="parent">
  <%= link_to_remote "Click Here",
    {:url => "/some_long_url",
    :method => :post,
    :before => "$('#parent').html('#{escape_javascript(link_to("Click Here"))}');"} %>
</div>

これは JQuery を使用していることに注意してください。プロトタイプを使用している場合は、'.html' メソッドを同等のプロトタイプ ('.update' だと思います) に変更する必要があるかもしれません。

次に、AJAX 呼び出しが行われた後、次のようなもので link_to_remote を再描画します...

render :update do |page|
  page.replace_html  'parent', :partial => 'partial_containing_your_link_to_remote', :locals => {}
end

最初の部分の link_to_remote は、DRY に保つために実際には同じパーシャルにある必要があります

于 2010-03-03T19:03:58.137 に答える
3

リンクを無効にすることはできませんが、たとえば href を変更することはできます。

したがって、 :before または :loading フックを使用して、 javascript を使用してリンクを「無効にする」ことができます。

于 2010-03-01T19:43:23.307 に答える