2011-07-23 10 views
1

RailsでJqueryを使用するのが初めてです。誰でもコンテンツが読み込まれているというメッセージの実際の例を提供することができます。グローバルなajaxStartを使用したくない理由は、毎回呼び出されることを望まないからです。Rails3 Jquery - コンテンツ読み込みメッセージ

私はかなり重い内容の部分を持っていて、読み込まれている人に伝えるメッセージをポップアップしたいと思っています。

これを達成するために私は見渡してビットとコードを見てきましたが、これがどこに行くのか把握していないようです。

正しい方向に私を指し示すものはどれも素晴らしいでしょう。

マイコード:index.htmlを

<%= link_to 'Health & Beauty', health_contacts_path, :action => 'health', :remote => true %> 

health.js

$(function(){ 
    $(".health") 
    .bind("ajax:beforeSend", function() { 
    $("#spinner").show('slow'); 
    }); 
    .bind("ajax:success", function() { 
    $("#spinner").hide(); 
    }); 
    .bind("ajax:complete", function(event, data, status, xhr) { 
     $("#content").html("<%= escape_javascript(render(:partial => "health")) %>"); 
    }); 
}); 

本当にありがとうございました

EDIT: 私は「私はドン、health.jsにコードを変更これがうまくいかないことを理解する。私がajaxを取り出す場合:beforeSendとajax:成功してからajax:completeがロードされます。それらの2つがそこにある場合、何も動作しません。

+0

これはおそらく次の質問に答えられます:http://stackoverflow.com/questions/68485/how-to-show-loading-spinner-in-jquery – mliebelt

答えて

1

ユーザーが部分的に読み込むようなものをクリックすると、すぐにスローバー(読み込み中の画像)が表示されます。

$(".throb_2").fadeIn(); 

show.js.hamlをロードしているファイルでは、部分呼び出し時に再び非表示にします。

== $(".throb_2").fadeOut(); 
== $(".opened_gallery").html("#{ escape_javascript(render :partial => 'photo_index') }").hide().fadeIn(); 

更新

私はAJAXは、一般的には呼び出しを呼び出すどのようにあなたをブリーフィングする必要がありのようですね..

ステップ1 .. return false;

$(".ajax").live("click", function(){ 
$.get($(this).attr("href"), null, null, "script"); 
return false; 
}); 
にあなたのlink_toをレンダリング

.ajaxクラスを追加したリンクでもコントローラ/アクションが呼び出されますが、実際にはリダイレクトされませんあなたのブラウザをct。

私の場合、このアクションは私のショーアクションでした。しかし、私はshow.html.erbファイルを持っていない、私はshow.jsファイルがあります。そのファイルでは、上記のjavascriptメソッドを実行します。

+0

これは本当に明白です私のコード私はlink_toを持って、画像のフェードは完全な意味があります。私は実際にどこで呼び出されるコードを置くか分からない。私のlink_toが呼び出されたときに呼び出される。あるいは、私は何が起こっているべきかを理解していないかもしれません。ご協力いただきありがとうございます。 – looloobs

+0

あなたの助けてくれてありがとう、元の投稿を編集して私が今持っているものを表示しても、まだ動作しませんが、理由を理解できないようです。 – looloobs

関連する問題