2012-02-13 12 views
0

私はループしているブランドのインデックスを持ち、それぞれにテーブルに追加するメソッドを呼び出し、jqueryを使用してテキストを太字にします。リンクがクリックされたときにhref属性を変更すると、RailsとJqueryで機能が停止する

<%= link_to brand.name, { :controller => 'user_favorites', :action => 'create_brand', :brand_id => brand.id, :user_id => current_user.id }, :onclick => "$(this).css('font-weight','bold');", :remote => true %> 

これは正常に動作しますが、しかし、さらに、私はそれがテーブルから削除し、別の方法、を指す削除リンクのhrefに変更する必要があります。現時点では、hrefを "http://www.google.com"に変更しようとしています。私は$(this).attr('href', 'http://www.google.com/');を追加するとき、私はHREFが正常に変化しない、このコード...残念ながら

<%= link_to brand.name, { :controller => 'user_favorites', :action => 'create_brand', :brand_id => brand.id, :user_id => current_user.id }, :onclick => "$(this).css('font-weight','bold'); $(this).attr('href', 'http://www.google.com/');", :remote => true %> 

を使用していますが、コントローラのアクションが呼び出されず、そしてブランドは、私のテーブルに追加されていません。コントローラの動作を実行するか、hrefを変更することができますが、両方を変更することはできません。どんな助けも大変ありがとう!ありがとう!

UPDATE:

要求されたよう

、リンクのいずれかのためにレンダリングされたHTML ...

<a href="/user_favorites/create_brand?brand_id=1272&amp;user_id=2" data-remote="true" onclick="$(this).css('font-weight','bold'); $(this).attr('href', 'http://www.google.com/');">BrandName</a> 
+2

jQueryとJavaScriptはクライアントサイドで動作します。サーバー側ではありません。ブラウザに表示されるレンダリングされたHTMLとjQueryスクリプトを見るのが助けになるでしょう。助けてください。 –

+0

ありがとうDavid、私はhtmlで自分の質問を更新しました。 jqueryスクリプトはありません。私はメソッドを目立たないように呼びます。 – tob88

+0

あなたは応答も返す必要があります。この行の後に "$(this).attr( 'href'、 'http://www.google.com/'); write trueを返します。お役に立てれば。 –

答えて

0

2物事

  1. は、私は元のリンクを変更しないだろう、私は希望リンクを非表示にしてXを行い、Yへのリンクを表示します。これははるかに目立たず、より良いアクションのトグルです。

  2. 私はあなたがやっていることをするために「クリック」を使用しないでしょう、私はクリックでカスタムイベントを発生させ、そのイベントに登録してから別のことをします。 http://jsfiddle.net/fr7xK/

私はあなたが最初の最初のイベント、非同期(async)それをやっているので、この方法で問題が解決されますかなり確信しています(「クリック」)火災、その後

にあなたを登録し、他のイベントをトリガします
関連する問題