Есть ли: disable_ с эквивалентом для link_to_remote? - PullRequest
3 голосов
/ 01 марта 2010

У меня есть link_to_remote, и я хочу убедиться, что люди могут щелкнуть по нему только один раз, ожидая его возврата.

Есть ли хороший способ отключить его после того, как кто-то щелкнет по нему? (Изменение текста ссылки тоже приятно, но я хочу отключить его, чтобы быть уверенным).

Кстати, это Ruby on Rails.

Ответы [ 2 ]

3 голосов
/ 03 марта 2010

Я закончил тем, что заменил ссылку в блоке: 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

3 голосов
/ 01 марта 2010

Вы не можете отключить ссылку, но вы можете изменить href, например.

Таким образом, вы можете использовать: before или: загрузку хуков, чтобы «отключить» ссылку, используя javascript.

...