0

ユーザーがリンクをクリックした後、次の 2 つのことを実行しようとしています。

  1. div を削除する
  2. ページの下部に別の要素を追加します

Rails link_to_remote で遊んだところ、以下のコードで得られたのは、div が削除される前に要素が追加されたことです。

<%= link_to_remote "&#x2713;",
  :url => {
    :controller => :movies,
    :action => :mark_as_seen,
    :movie => movie,
    :render => 'movie' },
  :success => "Effect.Fade('movie_#{movie.id}_wrapper', { duration: 0.4 })",
  :update => "movies", :position => "bottom",
  :failure => "alert('Ooops! An error occurred.')"
%>

:updateand:positionをコールバックに入れようとしました:completeが、何も起こりませんでした。そして、両方を:successコールバック ( の後Effect.Fade) に入れると、解析エラーだけが発生します。

何か案が?

ありがとう、

ケビン

4

1 に答える 1

2

私が正しく理解しているかどうかは完全にはわかりませんが、:update アクションが実行される前に div を削除する必要があると思います。

いつものように、これは驚くほど簡単です:)

<%= link_to_remote "&#x2713;",
  :url => {
    :controller => :movies,
    :action => :mark_as_seen,
    :movie => movie,
    :render => 'movie' },
  :before => "Effect.Fade('movie_#{movie.id}_wrapper', { duration: 0.4 })",
  :update => "movies", :position => "bottom",
  :failure => "alert('Ooops! An error occurred.')"
%>

をに置き換えるだけ:success:before、最初にそれが行われます。これがあなたが望むことを願っています:)

説明は簡単です。:success完全なアクションが正常に終了すると、アクションが実行され、更新も実行されます。アクションは、:beforeリモート アクションが実行される前に実行されます。たとえば、これを常に使用して、リモート アクション中にスピナーを表示します。

于 2010-05-08T19:23:11.453 に答える