私は link_to_remote を持っていて、それが戻るのを待っている間、人々が一度だけクリックできるようにしたいと思っています。
誰かがクリックした後に無効にする良い方法はありますか? (リンクのテキストを変更するのもいいですが、念のため無効にしたいです)。
これはRuby on Railsです。
私は link_to_remote を持っていて、それが戻るのを待っている間、人々が一度だけクリックできるようにしたいと思っています。
誰かがクリックした後に無効にする良い方法はありますか? (リンクのテキストを変更するのもいいですが、念のため無効にしたいです)。
これはRuby on Railsです。
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 に保つために実際には同じパーシャルにある必要があります
リンクを無効にすることはできませんが、たとえば href を変更することはできます。
したがって、 :before または :loading フックを使用して、 javascript を使用してリンクを「無効にする」ことができます。